Javascript Element.querySelector用于元素';直系子
我有一些带有HTML元素的JS常量(例如Div)。我需要知道元素是否包含一些HTML结构。例如,以下是我的HTML:Javascript Element.querySelector用于元素';直系子,javascript,html,Javascript,Html,我有一些带有HTML元素的JS常量(例如Div)。我需要知道元素是否包含一些HTML结构。例如,以下是我的HTML: <div id="container"> <table class="cls1 cls2"> <tbody class="cls3 cls4"> <tr class="cls5 cls6"> <td></td> <td></td>
<div id="container">
<table class="cls1 cls2">
<tbody class="cls3 cls4">
<tr class="cls5 cls6">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div></div>
<span></span>
这只是一个例子。实际上div不包含“container”id。我从某个函数中得到这个元素,所以我不知道元素的CSS选择器
我需要知道,如果元素包含这个CSS选择器:table.cls1.cls2>tbody.cls3.cls4>tr.cls5.cls6>td
,那么table.cls1.cls2
必须是div的直接子元素。使用这样的东西会很好:
const ok = div.querySelector('> table.cls1.cls2 > tbody.cls3.cls4 > tr.cls5.cls6 > td');
但它不是一个有效的选择器(以“>”开头)。您可以使用伪类以self为目标,然后为直接子级编写选择器
const ok = div.querySelector(':scope > table.cls1.cls2 > tbody.cls3.cls4 > tr.cls5.cls6 > td');
const ok = div.querySelector(':scope > table.cls1.cls2 > tbody.cls3.cls4 > tr.cls5.cls6 > td');