我可以使用document.prototype.getElementById来获取另一个元素中的元素,而不是整个文档中的元素

时间:2013-03-04 14:57:16

标签: javascript getelementbyid

我最近在这个javascript小贴士上找到了:

element_number = Array.prototype.indexOf.call(element_1, element_2);

它允许开发人员在不是数组的对象上使用indexOf方法。

我想知道是否可以使用类似的语法来调用getElementById方法而不是整个文档(document.getElementById),只是在这样的元素上:

my_div_2 = document.prototype.getElementById.call(div_1, "id_of_my_div_2");

我的想法是我的文档包含标签,并且文档中可以多次出现具有相同ID的元素。

如果不可能,有人写了一个功能: 通过id在元素中搜索另一个元素。

3 个答案:

答案 0 :(得分:0)

这没有任何意义,因为文档中只能有一个具有给定id的元素。

所以唯一正确的语法是

my_div_2 = document.getElementById("id_of_my_div_2");

不要在文档中重复使用id。您可能可以使用类而不是id来实现所需的结果。

答案 1 :(得分:0)

不,但您可以使用querySelector来完成您想要的任务。

my_div_2 = div_1.querySelector("#id_of_my_div_2");

IE6 / 7不支持。


也就是说,重复的ID无效。

如果相同的脚本用于ID可能在或不在特定容器中的不同页面上,则此技术非常有用。

答案 2 :(得分:0)

没有。 getElementById method 必须应用于Document类型的对象,否则会引发WRONG_THIS_VALUE异常。您可以尝试

myDiv1 = document.getElementById("div1");
myDiv2 = document.getElementById.call(myDiv1, "div2"); // no ".prototype"!