如何使用jQuery从HTML节点中选择文本内容?

时间:2019-02-09 10:53:42

标签: jquery

如何仅使用jQuery选择“某些文本”?

<p class="a">some text<a href="">some other text</a></p>

上面是代码。

我猜$('p.a').text()工作不正常。

console.log($('p.a').text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="a">some text<a href="">some other text</a></p>

4 个答案:

答案 0 :(得分:0)

$('p.a').contents().filter(function () { return this.nodeType === 1; });

答案 1 :(得分:0)

您可以使用自己的功能来忽略子元素

$.fn.ignoreChildren = function(child){
    return this.clone().find(child||">*").remove().end();
};

alert($(".a").ignoreChildren('a').text()); // Alerts 'some text'

答案 2 :(得分:0)

尝试一下:

console.log($('p.a').contents().not($('p.a').children()).text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="a">some text<a href="">some other text</a></p>

答案 3 :(得分:0)

使用clone方法仅获取主节点,并从中删除所有其他子节点。然后获取您的内容。检查以下代码:

console.log($("p.a").clone().children().remove().end().text());

我已经检查过了,它工作正常。希望对您有帮助。