我正在使用一个if
语句来确定一个元素是否有任何子元素。如果它没有任何孩子,我只想对那个元素做点什么。
这是我正在尝试做的事情的前提:
if ($("#div a").children().length > 0){
$(this).hide();
}
所以如果一个<a>
标签没有孩子,我想对那个特定的元素(或多个也没有孩子的元素)做点什么。
问题是this
尚未定义,因为它是一个if
声明。
我可能完全错过了一些东西,但我不太确定如何做到这一点。任何意见,将不胜感激
我正在使用一个if
语句来确定一个元素是否有任何子元素。如果它没有任何孩子,我只想对那个元素做点什么。
这是我正在尝试做的事情的前提:
if ($("#div a").children().length > 0){
$(this).hide();
}
所以如果一个<a>
标签没有孩子,我想对那个特定的元素(或多个也没有孩子的元素)做点什么。
问题是this
尚未定义,因为它是一个if
声明。
我可能完全错过了一些东西,但我不太确定如何做到这一点。任何意见,将不胜感激
编辑:添加了演示链接
您可以使用.filter
来检查条件并调用.hide
过滤器结果。见下文,
$("#div a").filter(function () {
return ($(this).children().length > 0)
}).hide();
你可以使用 each 来遍历元素
$('input').each(function(){
if ($(this).val()) {
$(this).addClass('has-value');
}
});
简单的解决方案是将元素放在变量中。
var elem = $("#div a");
if (elem.children().length > 0){
elem.hide();
}