jQuery 获取部分 innerhtml

jQuery get part of innerhtml

我需要获取 p 标签的 html,但是其中有一个 br 标签。所以它看起来像:

<p>
    Some Text
    <br>
    Some More Text
</p>

我需要分别获取第一部分和第二部分。所以我可以做类似的事情:

$('p').html() //Up To '<'
$('p').html() //After '>'

可能吗?

如果您知道总会有一个 <br> 标签,那么是的。 否则你可以使用正则表达式。

var foo = $('p').html().split('<br>')[0];
var bar = $('p').html().split('<br>')[1];

是的,有可能!!! 使用拆分功能...

$('p').html().split("<br>")[0];
$('p').html().split("<br>")[1];
$(document).ready(function(){

   var str = $('p').html();

   console.log(str.split('<br>'));

});

尝试使用.contents()检索存在于内部的节点,

$('p').contents()[0].nodeValue;
$('p').contents()[2].nodeValue;

并且 node 对象有一个名为 nodeValue 的 属性,它将为您提供所需的文本。

DEMO

我可以给你两个建议:

首先:使用子字符串 (FIDDLE)

var content = $('p').html();
var firstPart = content.substring(0,content.indexOf("<br>"));
var secondPart = content.substring(content.indexOf("<br>") + 4,content.length);

第二:使用分割(FIDDLE)

var content = $('p').html().split("<br>");
var firstPart = content[0];
var secondPart = content[1];

您可以使用jQuery拆分方法拆分<br>标签处的内容。然后抓住一切。

var text = $('p').html();
text.split('<br>')[0];
text.split('<br>')[1];

要获取第二部分,您使用相同的拆分方法,但在
标记之后获取所有内容。

这是 MDN 的 link,进一步解释了 split() 方法。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split