我正在使用if
语句来确定元素是否包含任何子元素。如果它没有任何孩子,我只想对该元素做一些事情。
这是我正在尝试做的前提:
if ($("#div a").children().length > 0){
$(this).hide();
}
因此,如果<a>
标签没有子节点,我想对该特定元素(或多个也没有子节点的元素)执行某些操作。
问题是this
尚未定义,因为它是if
语句。
我可能完全错过了一些东西,但我不太清楚如何实现这一目标。任何建议将不胜感激
答案 0 :(得分:10)
修改:添加了DEMO链接
您可以使用.filter
检查条件并在过滤结果上调用.hide
。见下文,
$("#div a").filter(function () {
return ($(this).children().length > 0)
}).hide();
答案 1 :(得分:8)
你可以使用每个来迭代元素
$('input').each(function(){
if ($(this).val()) {
$(this).addClass('has-value');
}
});
答案 2 :(得分:3)
简单的解决方案是将元素放在变量中。
var elem = $("#div a");
if (elem.children().length > 0){
elem.hide();
}