javascript访问另一个元素内的元素

时间:2014-05-21 05:08:33

标签: javascript html

我想访问另一个元素中的元素。这是html脚本

<label id="loginbutton" class="uiButton uiButtonConfirm" for="u_0_n">

    <input id="u_0_n" type="submit" tabindex="4" value="Log In"></input>

</label>

我其实想要改变类型&#34;提交&#34;输入=&#34;按钮&#34;但是输入id(u_0_n)不是唯一的。可以随时更改。但是lable id永远不会改变。所以我想访问loginbutton然后先在其中输入标签。

我试过这样的话;

document.getElementById('loginbutton').contentDocument.getElementsByTagName('input')[0].setAttribute("type","button"); 

但它无法正常工作。如何访问另一个

中的元素

2 个答案:

答案 0 :(得分:1)

你走了:(小改变)

<script src="jquery.min.js"></script>
<label id="loginbutton" class="uiButton uiButtonConfirm" for="u_0_n">

<input id="u_0_n" type="submit" tabindex="4" value="Log In"></input>

</label>
<script>
document.getElementById('loginbutton').getElementsByTagName('input')[0].setAttribute("type","button");
</script>

答案 1 :(得分:1)

你可以试试这个:

你的HTML

<label id="loginbutton" class="uiButton uiButtonConfirm" for="u_0_n">

    <input id="u_0_n" type="submit" tabindex="4" value="Log In"></input>

</label>

将JS函数写为

function GetElementInsideContainer(containerID, childID) {
    var elm = document.getElementById(childID);
    var parent = elm ? elm.parentNode : {};
    return (parent.id && parent.id === containerID) ? elm : {};
}

然后将函数调用为:

var e = GetElementInsideContainer("loginbutton", "u_0_n");
alert(e.id);

e是必需的元素,警报将提供其ID。

请参阅fiddle了解相同内容:

如果你不想通过id,那么:

您应该使用类,或者只是遍历输入并跟踪索引。

尝试这样的事情:

var div2 = document.getElementById('div2');
for(i = j = 0; i < div2.childNodes.length; i++){
    if(div2.childNodes[i].nodeName == 'INPUT'){
        j++;
        var input = div2.childNodes[i];
        alert('This is edit'+j+': '+input);
    }
}

请参阅 fiddle