为什么div在这种情况下显示为空

时间:2015-02-26 13:55:42

标签: jquery

指定的div里面有一些内容,但它仍然将div显示为空

<div class="Itm_right_aside">
    <div style="display:none;" class="toppcrustdata">
      <div id="popupinner703" class="popup_inner addonsContent">

      </div>
   </div>
</div>

if ($('.Itm_right_aside .toppcrustdata').html()) {
    alert('empty');
} else {
    alert('Not empty');
}

我正在检查类toppcrustdata div是否有任何数据,但是尽管有些内容仍然显示为空

你能告诉我原因吗

http://jsfiddle.net/tdzfhzjy/77/

7 个答案:

答案 0 :(得分:5)

html()不返回布尔值,它返回一个字符串。请检查空字符串:

if ($('.Itm_right_aside .toppcrustdata').html() == '')

或者,您可以反转自己的if()语句的逻辑:

if( ! $('.Itm_right_aside .toppcrustdata').html() )

jsFiddel Demo

答案 1 :(得分:2)

您需要在if语句中使用!条件。我也建议你找到if语句中返回的html的长度:

if (!$('.Itm_right_aside .toppcrustdata').html().length) {
  alert('empty');
} else {
  alert('Not empty');
}

答案 2 :(得分:2)

你的病情有误。它基本上说:如果HTML 不为空,那么alert("empty")

您应将其更改为:

if (!$('.Itm_right_aside .toppcrustdata').html()) {
    alert('empty');
} else {
    alert('Not empty');
}

答案 3 :(得分:1)

您正在检查内部是否显示“空”。

应该是:

if ($('.Itm_right_aside .toppcrustdata').html().length == 0) {
    alert('empty');
} else {
    alert('Not empty');
}

答案 4 :(得分:0)

如果它有内容,那么你的if会是真的然后显示为“空”或者将它改为!$ .....在if中或交换“empty”并且“not empty”

答案 5 :(得分:0)

试试这个: -

if ($('.toppcrustdata').html() == '') {
    alert('empty');
} else {
    alert('Not empty');
}

答案 6 :(得分:0)

如果您知道.toppcrustdata div是父元素,那么您也可以像这样测试:

if ($('.Itm_right_aside .toppcrustdata').children().length == 0) {

    alert('empty');
} else {
    alert('Not empty');
}

Fiddle