测试类的任何元素是否包含HTML

时间:2014-02-03 00:17:45

标签: jquery

我有这段代码:

var ShowPreview = false;

$('#SomeID').find('.SomeClass').each(function () {

    if ($(this).html().length) {

        ShowPreview = true;
    }
});

基本上,我循环遍历元素,如果其中有HTML,那么我将布尔值设置为true。有没有更简洁的方法来做到这一点?

感谢。

3 个答案:

答案 0 :(得分:3)

怎么样

var ShowPreview = $('#SomeID .SomeClass:not(:empty)').length > 0;

http://api.jquery.com/empty-selector/
http://api.jquery.com/not-selector/

或者

var ShowPreview = $('#SomeID .SomeClass').contents().length > 0;

http://api.jquery.com/contents/

答案 1 :(得分:3)

var showPreview = $('#SomeID .SomeClass').contents().length > 0;

答案 2 :(得分:2)

var ShowPreview = $('#SomeID .SomeClass').filter(function () {
    return $.trim(this.innerHTML) !== "";
}).length > 0;

在旁注中,我建议你不要大写ShowPreview,因为这是javascript中的一个约定。此外,html类和ID通常应为小写(即some-class