document.getElementById将搜索整个文档并返回结果但是在这里我想要一个特定div的相同函数,因为我想搜索特定div的id并基于我想要执行
这是我的代码
if(document.getElementById('myId') ) // but it return the result from whole div
{
// Do something
}
else {
// do something else
}
我想要像
这样的东西if(document.getElementById('myId') in specific div) \\ how to do this
答案 0 :(得分:1)
假设您正在寻找id为“parentId”的父div中id为“childId”的元素(div)。 Jquery代码是:
$("#parentId").find("#childId")
作为一种缩写形式,您甚至可以
$("#parentId #childId")
由于以上陈述会找到任何深度的孩子,如果你想要直接搜索孩子,(第一级孩子)
$("#parentId > #childId")
一般来说,ID在页面中是唯一的(或者至少建议为:))。在这种情况下,您可以直接进行
$("#childId")
仍然得到子元素。
无论哪个适用。
答案 1 :(得分:0)
id属性应该是唯一的,因此在另一个元素中搜索具有id的元素,它与在整个DOM中直接搜索该id相同。
答案 2 :(得分:0)
如果元素是,则可以使用querySelector返回元素 :
document.getElementById('evalBar').querySelector('#button_2');
/ *返回值:(html BUTTON) [object HTMLButtonElement] * /
答案 3 :(得分:0)
您可以使用querySelector函数。重要信息:检查浏览器兼容性! https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector
示例:
<div id="foo">
<div id="bar">
this is foo-bar
</div>
</div>
<script>
var bar = document.querySelector("#foo #bar")
alert(bar.innerHTML); // result: alert message "this is foo-bar"
</script>
答案 4 :(得分:0)
您想要搜索所有id
div
我假设您知道要搜索的id
您可以像这样重复document.getElementsByTagName('div')
var myID = 4;
for (var i = 0; i < document.getElementsByTagName('div').length; i++){
var res = document.getElementsByTagName('div')[i+1].id;
if(res == myID){
document.body.innerHTML = res;
break;
}
}
这将是您的 HTML 外观:
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
<div id="5"></div>
<div id="6"></div>
请参阅Demo here
或我进一步假设您的 HTML 代码看起来像这样:
<div id="myId">
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
<div id="5"></div>
<div id="6"></div>
</div>
然后你可以像这样迭代document.getElementById('myId').getElementsByTagName('div')
:
var myID = 3;
for (var i = 0; i < document.getElementById('myId').getElementsByTagName('div').length; i++){
var res = document.getElementsByTagName('div')[i+1].id;
if(res == myID){
document.body.innerHTML = res;
break;
}
}