我有这个标记:
<li class="GRID_ITEM" id="123">
<img class="imgUrl" src="search_logo_big.png">
<div class="title"></div>
</li>
如果li.GRID_ITEM
没有文字,我想隐藏div.title
。
我不知道如何在JQ中这样做。感谢!!!
答案 0 :(得分:7)
有:empty
选择器:
$('li.GRID_ITEM:has(div.title:empty)').hide();
但要注意:empty
严格意味着没有文字(包括空白)和没有子元素。如果要处理包含空格或子元素的个案,请使用:
$('li.GRID_ITEM').filter(function () {
return $.trim($(this).find('div.title').text()).length == 0;
}).hide();
正如ŠimeVidas指出的那样,这也将隐藏根本没有子元素的任何父级。如果那不是您想要的,您可以尝试这种变体,另外检查子元素是否存在:
$('li.GRID_ITEM').filter(function () {
var title = $(this).find('div.title');
return title.length && $.trim(title.text()).length == 0;
}).hide();