我一直在寻找这个问题的答案,但找不到任何答案,因此我想尝试使用StackOverflow。
在javascript中,这是否有效:x = document.getElementById('myId');y = x.getElementById('mySecondId');
我知道可以使用getElementsByTagName
完成此操作,但是我不确定getElementById
返回的对象是否能够使用getElementById
方法。
我知道ID在每个文档中应该是唯一的,但有时情况并非如此。
谢谢!
最佳答案
不。
...但是您可以:
Element.prototype.getElementById = function(id) {
return document.getElementById(id);
}
在此页面上尝试:
var x = document.getElementById('footer').getElementById('copyright');
编辑:正如Pumbaa80所指出的,您还需要其他东西。好吧,这是。请谨慎使用。
Element.prototype.getElementById = function(req) {
var elem = this, children = elem.childNodes, i, len, id;
for (i = 0, len = children.length; i < len; i++) {
elem = children[i];
//we only want real elements
if (elem.nodeType !== 1 )
continue;
id = elem.id || elem.getAttribute('id');
if (id === req) {
return elem;
}
//recursion ftw
//find the correct element (or nothing) within the child node
id = elem.getElementById(req);
if (id)
return id;
}
//no match found, return null
return null;
}
例如:http://jsfiddle.net/3xTcX/
关于javascript - 链接getElementById,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5683087/