检查元素是否没有带jquery的子元素

时间:2017-07-22 11:55:47

标签: javascript jquery html

我想检查元素是否没有子元素设置父元素display:none属性。

但我的js没有按预期工作我的错误在哪里?



$(document).ready(function(){
  if (!$('#detay-main-carousel').children('.carousel-inner').length>1) {
     $('#detay-main-carousel').hide();
  }
});

<div id="detay-main-carousel" style="background:turquoise;">
  <div class="carousel-inner">
    This is the slider.....
  </div>
</div>

<div id="detay-main-carousel" style="background:yellow;">
    This is the slider.....
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:3)

ID function addNum(num1,num2){ var num; var sum = 0; for(var i = num1; i<= num2; i++ ){ num = i; sum += num; } } console.log(addNum(1,2)); 重复。

detay-main-carousel也应该是:

! ..children('.carousel-inner').length > 1! ..children('.carousel-inner').lengthchildren('.carousel-inner').length < 1

&#13;
&#13;
children('.carousel-inner').length === 0
&#13;
$(document).ready(function(){
  $('.detay-main-carousel').each(function () {
    if (!$(this).children('.carousel-inner').length) {
        $(this).hide();
    }
  })
});
&#13;
&#13;
&#13;

答案 1 :(得分:1)

!运算符的优先级高于>,因此您应该以不同的方式编写它:

if ($('#detay-main-carousel').children('.carousel-inner').length<=1) {

>1检查完全相反。但是阅读你的问题,你会想要测试没有这样的孩子(不包括1):

if ($('#detay-main-carousel').children('.carousel-inner').length == 0) {

请注意,$('#detay-main-carousel')仅匹配第一次出现,因为id值应该是唯一的。最好用类替换id值,这样它们就不必是唯一的。

答案 2 :(得分:1)

$(document).ready(function(){

  if ($('#detay-main-carousel').children('.carousel-inner').length < 1) {
     $('.detay-main-carousel').hide();
  }
});
<div class="detay-main-carousel" style="background:turquoise;">
  <div class="carousel-inner">
    This is the slider.....
  </div>
</div>

<div id="detay-main-carousel" style="background:yellow;">
    This is the slider.....
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>