7

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

var disAb=document.getElementBySomething("div.ContainerDiv select")

当我提到术语“路径”时,我的意思是我将如何在 CSS 中引用它(参见代码参考)。

感谢你们!

4

1 回答 1

23

您想要document.querySelectoror document.querySelectorAll,然后只需通过其层次结构路径引用它:

示例 HTML

<div class="ContainerDiv">
   <table>
   <tr>
      <td>
        <div>
           <select>
              <option>Some options</option>
           </select>
        </div>
      </td>
   </tr>
   </table>
</div>

JS

获取单个元素

var select=document.querySelector("div.ContainerDiv table tr td div select");
select.id = "someid";

对于多个元素

var selects=document.querySelectorAll("div.ContainerDiv select");
selects[0].id = "someid";

当然,您不需要层次结构的每个部分,例如您可以只使用:div.ContainerDiv selectdiv.ContainerDiv table select等。

于 2013-09-20T09:03:28.373 回答