我有以下 HTML 格式的内容。我正在尝试获取具有属性 foo='bar' 的 Div,但仅当该 div 具有某些文本子元素时才能获取。
```html
在上面的示例html中,我想获取foo=bar的第一个和第三个div,并忽略第二个,因为它没有一个带有文本foobar的子span。
我的javascript将获取所有3个,但在循环中,如何检查子span文本是否匹配foobar,然后再执行操作?
谢谢。
```html
我有以下 HTML 格式的内容。我正在尝试获取具有属性 foo='bar' 的 Div,但仅当该 div 具有某些文本子元素时才能获取。
``` var loop = document.querySelectorAll('[foo="bar"]');
for(var i = 0; i <= loop.length; i++)
//perform action
<div foo='bar'>
<div>
<span>
<span> foobar </span>
</span>
</div>
</div>
<div foo='bar'>
<div>
<span>
<span> barfoo </span>
</span>
</div>
</div>
<div foo='bar'>
<div>
<span>
<span> foobar </span>
</span>
</div>
</div>
在上面的示例html中,我想获取foo=bar的第一个和第三个div,并忽略第二个,因为它没有一个带有文本foobar的子span。
我的javascript将获取所有3个,但在循环中,如何检查子span文本是否匹配foobar,然后再执行操作?
谢谢。
:contains
选择器,但它不存在(还?)。选择器级别3:6.6.6.空白。因此,您需要自己对找到的元素进行过滤,例如使用MDN:Node.innerText。 - t.niese