document.getElementById类似于特定div的函数

时间:2014-04-29 07:05:16

标签: javascript jquery

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

5 个答案:

答案 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;
    }
}

并参见Another Demo Here