如何从路径而不是类或Id获取元素

Phi*_*ish 5 javascript dom css-selectors

我正在努力为此找到答案,我想要一种方式来讨论一个元素,但由于我添加的系统我不能通过它的Id引用,因为它是动态的.我可以指定其包含div的类名称...实质上我正在寻找的是以下内容:

var disAb=document.getElementBySomething("div.ContainerDiv select")
Run Code Online (Sandbox Code Playgroud)

当我提到术语'path'时,我的意思是我将如何在CSS中引用它(参见代码参考).

感谢你们!

Pat*_*ans 13

你想document.querySelector或者document.querySelectorAll,那么仅仅通过它的层级路径引用它:

示例HTML

<div class="ContainerDiv">
   <table>
   <tr>
      <td>
        <div>
           <select>
              <option>Some options</option>
           </select>
        </div>
      </td>
   </tr>
   </table>
</div>
Run Code Online (Sandbox Code Playgroud)

JS

获得单个元素

var select=document.querySelector("div.ContainerDiv table tr td div select");
select.id = "someid";
Run Code Online (Sandbox Code Playgroud)

对于多个元素

var selects=document.querySelectorAll("div.ContainerDiv select");
selects[0].id = "someid";
Run Code Online (Sandbox Code Playgroud)

当然你不需要hiearchy的每个部分,例如你可以使用:div.ContainerDiv select或者div.ContainerDiv table select等等.