我有这段代码:
var ShowPreview = false;
$('#SomeID').find('.SomeClass').each(function () {
if ($(this).html().length) {
ShowPreview = true;
}
});
基本上,我循环遍历元素,如果其中有HTML,那么我将布尔值设置为true。有没有更简洁的方法来做到这一点?
感谢。
答案 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;
答案 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
。