只获取子类内容

图片描述

怎么只获取内容text:你好

阅读 3.9k
6 个回答

试试:

var boxText = document.querySelector('.box').firstChild.data;
console.log(boxText);

补一个参考:
Text节点的属性:data

遍历所有子节点, 判断是不是文本节点, 然后拼接字符串.
好像有点蠢, 看高手有没有其他方法.
https://jsfiddle.net/an0mgwot/

var boxText = document.querySelector('.box').firstChild.nodeValue;

console.log(boxText);

var box = document.querySelector('.box').firstChild.nodeValue.replace(/(^s)|(s$)/g, "");
console.log(box);

// 个人感觉写的挺通用的,挂载到jq上用起来也方便

<div class="box">
    111
    <div>222</div>
    <span>333</span>
</div>
<div class="box">
    888
    <div>222</div>
    <span>333</span>
</div>
<script src="jquery-3.1.1.js"></script>
<script>
$.fn.mySelfText = function() {
    var that = $(this);
    if (that.length == 0) {
        console.warn('sorry');
        return;
    }
    var obj = that.clone();
    var allChildren = obj.children();
    var arrText = [];
    for (var i = 0; i < allChildren.length; i++) {
        $(allChildren[i]).empty();
    };
    for (var i = 0; i < obj.length; i++) {
        arrText[i] = obj.eq(i).text().replace(/\s/g, '');
    }
    console.log(arrText);
    return arrText;

};
$('.box').mySelfText();
</script>

怎么只获取text:你好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题