然则本文转达的意义和table
无关,嘻嘻…..
请求:挑选#table1下的两个子元素tr
<table id="table1">
<tr>
<td>
<table id="table2">
<tr>行行1</tr>
<tr>行行2</tr>
</table>
</td>
</tr>
<tr>行2</tr>
</table>
第一次测试:document.querySelector("#table1 tr")
,测试发明只能挑选一个tr,不符合请求;
第二次测试:document.querySelectorAll("#table1 tr")
,测试挑选出四个tr,不符合请求,这是因为内里包括一个table致使。实行document.querySelectorAll("#table1 tbody")
,内里有两个tbody(为何内里会有tbody,自行谷歌关键词thead,tbody,tfoot
);
第三次测试:document.querySelectorAll("#table1>tbody>tr")
效果符合请求;
综上所述,那末题目来了。querySelector()
经由过程CSS的挑选器只能选单一的元素(纵然内里的挑选器是*,也没法挑选多个元素),选多个元素需要用querySelectorAll()
,这个和Jqery
是不一样的,不要殽杂。#table1>tbody
内里>
号能够挑选以#table1为父级的子元素,不加这个则返回内部一切,所以要熟记CSS挑选器
啊。