如果标签<ul>之间为空,则发出警报。?</ul>

时间:2011-08-31 21:21:09

标签: javascript jquery

我想在代码ul提醒hello之间清空。怎么回事?

<button class="click">Click</button><p>

<span>
    <ul></ul>
</span>

JS:

$('.click').click(function() {
    if('span ul' == ''){alert('hello')};
});

示例: http://jsfiddle.net/KDAwP/1/

3 个答案:

答案 0 :(得分:3)

使用jQuery :empty选择器选择空元素。空元素是没有子元素或文本的元素。

$('.click').click(function() {
    if($('ul:empty').length){alert('hello')};
});

jQuery未在ul标记内找到span。实际上,您不应该在ul标记内放置span

尝试这个小提琴它完全正常。

http://jsfiddle.net/KDAwP/6/

答案 1 :(得分:0)

下面:

$('.click').click(function() {
    $('div ul').each(function(){
        if(this.innerHTML == ''){ 
            alert('hello');
            return false;
        }
    })
});

不能ul内有span

小提琴:http://jsfiddle.net/Nxk7a/

答案 2 :(得分:0)

在此处测试解决方案:jsperf

:empty更快的另一种解决方案是:

var isEmpty = jQuery("#foo ul li").length === 0;

但有趣的是,如果你对ul有问题,那么使用html()是最快的。

var isEmpty = jQuery("#UL_ID").html().length === 0;

所以最快的方式实际上取决于选择器是什么。