jquery选择器 - 不选择内部元素

时间:2012-07-22 14:18:10

标签: javascript jquery css-selectors

  

可能重复:
  Getting text within element excluding decendants

我试图使用1选择器和text()方法获取元素数据的一部分。 假设我有以下HTML代码:

<div class="price">
     <span class='old_price'>1150</span><br />
     920 
</div>

在这种情况下,我只想获得920(没有t 1150)。是否可以使用一个选择器来做到这一点?

例如,如果我div.price.text(),我会得到两个价格。所以通过&#34;一行&#34;我的意思是div.price.not("span.old_price").text()或类似的东西。

1 个答案:

答案 0 :(得分:0)

来自jQuery API文档Description: Get the combined text contents of each element in the set of matched elements, including their descendants.,所以即使你只选择外部元素,你也会使用text()获得两个数字作为结果的一部分;

所以你想要的是过滤除文本节点之外的所有东西

$(".price").contents().filter(
    function() {
       return this.nodeType === 3;  // text node
    }
).text();

您可能希望修剪空格(在这种情况下,您可以使用$.trim()

包装上述代码