如何在段落中找到不强的元素

时间:2015-05-04 16:52:19

标签: javascript jquery html jquery-selectors

我有一个这样的段落:

<p>
    <strong>Cost:</strong>
    $1,500 - $10,000 (see below for details)
</p>

我想先选择strong文字,然后选择not strong文字。

我正在尝试以下方法:

$('p').not('strong').html()

$('p:not("strong")')

但它似乎没有用。

3 个答案:

答案 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>