【问题标题】:Javascript querySelectorAll and :not SelectorJavascript querySelectorAll 和 :not Selector
【发布时间】:2017-02-13 11:44:08
【问题描述】:
<div class="classDiv">

<span id="mySpan"> TEXT 1 </span> TEXT 2

</div>

使用 document.querySelectorAll(".classDiv")[0].textContent

返回 = TEXT 1 TEXT 2

我怎样才能只得到 TEXT 2?

我尝试使用 :not(span) 没有成功。

谢谢

【问题讨论】:

标签: javascript css-selectors


【解决方案1】:

据我所知,没有任何内置功能,但您可以添加一个函数来提取作为元素的直接子级的文本节点:

function getDirectText(node) {
    var text = '';

    for (var i = 0; i < node.childNodes.length; i++) {
        var child = node.childNodes[i];

        if (child.nodeType === 3) {  // Node.TEXT_NODE
            text += child.nodeValue;
        }
    }

    return text;
}

然后:

var text = getText(document.getElementsByClassName('classDiv')[0]);

您可能也想修剪空白的结果。

【讨论】:

  • 我在写自己的答案时分心了,跑了回来找你的;因为我自己的答案和你的答案只是略有不同,所以添加我自己的答案似乎毫无意义,所以如果你认为这是一个有用的选择,如果你想将它添加到你的答案中,我会很高兴:jsfiddle.net/davidThomas/num9zf3b :) (虽然我选择了返回数组,而不是将其连接在一起。)
  • @DavidThomas:我认为这本身就是一种很好的 ES6 方式;如果你添加它,我会投票给它。 =)
猜你喜欢
  • 1970-01-01
  • 2017-03-02
  • 2012-02-02
  • 2021-03-17
  • 1970-01-01
  • 2023-03-17
  • 2017-12-10
  • 2015-09-03
  • 1970-01-01
相关资源
最近更新 更多