jquery如何获取标签本生的文本内容,不获取本身子级元素及子级元素的内容


代码如下
html:


 <div>
    <p>内容<span>我不获取的内容</span>内容</p>
</div>

js:


 var content = $("div p").text();
var content = $("div p").html();

实现效果:以上两种方法text(),html()都要把span标签内的文本获取出来,而现在我想获取p标签下的“内容”,不包括p标签下的span标签下的内容,即 我需要让content = "内容内容"、而不是content = "内容<span>我不获取的内容</span>内容内容",也不是content = "内容我不获取的内容内容内容"

jquery 前端 web前端开发 JavaScript

zypher 9 years, 4 months ago

 var obj = $($("div").html());
obj.find("span").remove();
alert(obj.html());

zirok answered 9 years, 4 months ago


 var str = $('div p').contents().filter(function (index, content) {
    return content.nodeType === 3;
}).text();

我了个闹不住 answered 9 years, 4 months ago

改了下第一个的答案,
var obj = $("div").clone().find(':nth-child(n)').remove();
alert(obj.html());
试试

926556 answered 9 years, 4 months ago

提供另一种思路:用正则替换


 var content = $("div p").html();
var res=content.replace(/(.*)<[^>]*>.*<\/[^>]*>(.*)/,"$1$2");

Fandisk answered 9 years, 4 months ago

Your Answer