简体   繁体   English

CSS伪选择器以选择querySelector中的当前元素?

[英]CSS pseudo-selector to select the current element within querySelector?

What's the CSS pseudo-selector to select an element's self? 用于选择元素自身的CSS伪选择器是什么?

For example, this does not work: 例如,这不起作用:

Array.prototype.map.call(document.querySelectorAll('.program_record_outer'), programBox => {
    return programBox.querySelector('> div')
});

DOMException: Failed to execute 'querySelector' on 'Element': '> div' is not a valid selector. DOMException:无法在'Element'上执行'querySelector':'> div'不是有效的选择器。

But I believe something like this would: 但是我相信这样会:

Array.prototype.map.call(document.querySelectorAll('.program_record_outer'), programBox => {
    return programBox.querySelector(':self > div')
});

However, :self isn't a thing, and :root refers to the document root, so how do I refer to the current context? 但是, :self不是东西, :root指的是文档根,那么如何指代当前上下文呢?

In some of the latest browsers ( Chrome, Firefox 32+, Opera 15+, and Safari 7.0+ ) you can use the :scope selector in calls to querySelector and querySelectorAll : 在某些最新的浏览器( Chrome,Firefox 32 +,Opera 15+和Safari 7.0+ )中,可以在调用querySelectorquerySelectorAll使用:scope选择器:

 let result = [...document.querySelectorAll('.program_record_outer')].map( programBox => programBox.querySelector(':scope > div') ) console.log(result) 
 <div class="program_record_outer"> <div>1</div> </div> <div class="program_record_outer"> <div>2</div> </div> <div class="program_record_outer"> <div>3</div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM