【问题标题】:How to find a not strong element inside of a paragraph如何在段落中找到不强的元素
【发布时间】:2015-05-05 01:08:06
【问题描述】:
我有一个这样的段落:
<p>
<strong>Cost:</strong>
$1,500 - $10,000 (see below for details)
</p>
我想先选择 strong 文本,然后选择 not strong 文本。
我正在尝试以下操作:
$('p').not('strong').html()
和
$('p:not("strong")')
但它似乎不起作用。
【问题讨论】:
标签:
javascript
jquery
html
jquery-selectors
【解决方案1】:
如果你需要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
【解决方案2】:
试试这个:
$("p").clone().children().remove().end().text();
【解决方案3】:
试试
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>