我想访问另一个元素中的元素。这是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");
但它无法正常工作。如何访问另一个
中的元素答案 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