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

jquery selectors - do not select inner elements

本文关键字:内部 元素 选择 选择器 jquery      更新时间:2023-12-21

可能重复:
获取元素内的文本(不包括偏心)

我正在尝试使用1选择器并仅通过text()方法获取元素数据的一部分。假设我有以下html代码:

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

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

例如,如果我做div.price.text(),我会得到两个价格。所以我所说的"一行"是指div.price.not("span.old_price").text()或类似的东西。

来自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()

包装上面的代码