我有一个这样的段落:
<p>
<strong>Cost:</strong>
$1,500 - $10,000 (see below for details)
</p>
我想先选择strong
文字,然后选择not strong
文字。
我正在尝试以下方法:
$('p').not('strong').html()
和
$('p:not("strong")')
但它似乎没有用。
答案 0 :(得分:5)
如果你需要p元素不强,那么你需要组合:has
选择器
$('p:not(:has(strong))')
用于获取没有强内容的文本节点文本:
$('p').clone().children().remove().end().text();//returns $1,500 - $10,000 (see below for details)
获取强元素文本:
$('p strong').text();//return Cost:
<强> Working Demo 强>
答案 1 :(得分:0)
试试这个:
$("p").clone().children().remove().end().text();
答案 2 :(得分:0)
尝试
var elems = $.parseHTML($("p").html()).filter(function(elem, i) {
return elem.tagName === "STRONG"
|| elem.previousSibling !== null
&& elem.previousSibling.tagName === "STRONG"
});
// `elems[0]`:`STRONG` element , `elems[1]`:`#text` node;
// `$(elems).eq(0)`:jQuery object `$("strong")`,
// `$(elems).eq(1)`:jQuery object `$("text")`
console.log(
elems[0], elems[1],
$(elems).eq(0).text(), $(elems).eq(1).text()
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p>
<strong>Cost:</strong>
$1,500 - $10,000 (see below for details)
</p>