css – 选择没有子元素的元素

前端之家收集整理的这篇文章主要介绍了css – 选择没有子元素的元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个页面可能是以下之一:
<span id='size'>33</span>

要么

<span id='size'>
    <b>33</b>
    <strike>32</strike>
</span>

我想在这两种情况下获取值’33’,我可以使用CSS选择器吗?
我尝试使用以下内容,#size with no b sibling或b是#size sibling:

document.querySelector('#size:not(>b),#size>b').innerText

但我一直收到错误 – “错误Syntax_ERR:DOM例外12”

根据w3 Spec支持Simple Selectors,事实是“大于号”(U 003E,>)“被视为Simple Selectors定义的一部分.

解决方法

你不能用常规的CSS选择器来做,但是你可以用几行JS来做:
var element = document.querySelector('#size');
var b = element.querySelector('b');
var text = b ? b.innerText : element.childNodes[0].nodeValue;

console.log(text);

猜你在找的CSS相关文章