5

getElementById()オブジェクトにありdocumentます。

要素参照が既にある場合、特定の ID を持つ子 (または子の子など) を見つけるにはどうすればよいですか?

var parent = document.getElementById(parentId),
    child = parent.getElementById(childId);

getElementByIdページ上の通常の要素にはメソッドがないため、このコードは失敗します。

(私はメンテナンス モードです。ID は必ずしも一意ではなく、jQuery を使用できません)。

4

3 に答える 3

8

使用できますquerySelector()

child = parent.querySelector("#" + childId);
于 2013-03-07T10:39:55.787 に答える
1

すべての子ノードを自分でループできますか?

おそらくこのようなもの:

GetChildElementByID = function (rootElement, id){
    var children = GetAllNodes(rootElement);
    for(var i in children){
        var element = children[i];
        if(element.id == id){
            return element;
        } 
    }
    return null;
}

GetAllNodes = function (rootElement) {
    var nodes = [];
    var childNodes = rootElement.childNodes;
    for (var i in childNodes) {
        var node = childNodes[i];
        if (node.nodeType) {
            nodes.push(node);
        }
        nodes.push.apply(nodes, GetAllNodes(node));
    }
    return nodes;
}
于 2013-03-07T10:39:40.363 に答える