我一直在寻找这个问题的答案,但找不到任何答案,因此我想尝试使用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/

10-13 00:56