JS搜索是否在div类中找到另一个名为" Name"的div。

时间:2015-11-28 14:03:06

标签: javascript

我有一些具有相同名称的div类,例如

<div class="Mydiv">

我想用名字&#34; MyDiv&#34;来搜索每个div。对于一个子 <div class="Subdiv">如果有...

代码示例:

<div class="Mydiv">
</div>
<div class="Mydiv">
 <div class="Subdiv">
 </div>
</div>

6 个答案:

答案 0 :(得分:1)

如果您想查看每个.Mydiv,并在找到.Subdiv时执行某些操作,如果找不到.Subdiv则执行其他操作,您可以尝试以下操作:< / p>

mydivs = document.getElementsByClassName("Mydiv");

for(var i=0; i<mydivs.length; ++i) {
    subdivs = mydivs[i].getElementsByClassName("Subdiv");

    if (subdivs.length > 0) {
        // do something
    } else {
        // no subdiv found in this Mydiv
    }
}

答案 1 :(得分:0)

尝试:

[].slice.call(document.getElementsByClassName('Mydiv')).forEach(function(el) {
    if (el.innerHTML.match(/class="[^"]*Subdiv"/)) {
        // el is your div
    }
});

答案 2 :(得分:0)

你可以这样做:

var targetDiv = document.getElementsByClassName("Mydiv").getElementsByClassName("Subdiv");

您将获得一个元素数组,以获得具有类.subdiv

的第一个子div

添加索引0

var targetDiv = document.getElementsByClassName("Mydiv").getElementsByClassName("Subdiv")[0];

答案 3 :(得分:0)

  

我想知道.Mydiv是否有.Subdiv

以下是一种方法:

  1. 使用querySelectorAll查找.Subdiv元素内的每个.Mydiv
  2. 循环播放并返回其父级.Mydiv
  3. &#13;
    &#13;
     var divs = [].map.call(document.querySelectorAll('.Mydiv > .Subdiv'), function (subDiv) {
        return subDiv.parentNode;
    });
    
    document.body.appendChild(document.createTextNode('Found ' + divs.length + ' .Mydiv that contains .Subdiv'));
    &#13;
    <div class="Mydiv">
    </div>
    
    <div class="Mydiv">
      <div class="Subdiv"></div>
    </div>
    
    <div class="Mydiv">
      <div class="Subdiv"></div>
    </div>
    
    <div class="Mydiv">
      <div class="Subdiv"></div>
    </div>
    &#13;
    &#13;
    &#13;

答案 4 :(得分:0)

如果你使用jQuery:

$('.Mydiv').filter(function(i,e) { 
    return $('> .Subdiv', e).size() > 0;
});

找到所有&#34; Mydiv&#34;类和过滤器,如果它包含Subdiv类

答案 5 :(得分:0)

您可以使用querySelectorAllquerySelector

[].forEach.call(document.querySelectorAll(".Mydiv"), function(mydiv) {
    if(mydiv.querySelector('.Subdiv')) {
        // do something
    }
});

querySelectorAll返回 HTML集合而不是真正的数组时,您无法直接在其上运行.forEach,因此[].forEach.call < / p>