js获取不包括标签的文本内容

我要获取p标签里面内容1

<div>
    <p>内容1<span>内容2</span></p>
</div>

使用jquery方法测试失败

var str1 =$("div p").html()
var str2 =$("div p").text()
console.log(str1) //内容1<span>内容2</span>
console.log(str2) //内容1内容2

那么我们可以使用原生js的nodeType属性来实现:

类别 nodeType
标签 1
属性 2
文本 3

具体其他属性可以网上搜索查找。

使用方法:

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

console.log(str3) //内容1

jQuery的contents()方法表示查找匹配元素内部所有的子节点(包括文本节点)。保存在数组里面.

console.log($("div p").contents()[0]) //"内容1"
console.log($("div p").contents()[1]) //<span>内容2</span>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。