我最近在这个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在元素中搜索另一个元素。
答案 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"!