jQuery在if语句中使用’this’

我正在使用if语句来确定元素是否有任何子元素。 如果它没有任何孩子,我只想对该元素做一些事情。

这是我正在尝试做的前提:

 if ($("#div a").children().length > 0){ $(this).hide(); } 

因此,如果标签没有子 ,我想对该特定元素(或多个也没有子元素的元素)执行某些操作。

问题是this尚未定义,因为它是一个if语句。

我可能完全错过了一些东西,但我不太清楚如何实现这一目标。 任何意见,将不胜感激

编辑:添加了DEMO链接

您可以使用.filter检查条件并在过滤结果上调用.filter 。 见下文,

 $("#div a").filter(function () { return ($(this).children().length > 0) }).hide(); 

你可以使用每个迭代元素

 $('input').each(function(){ if ($(this).val()) { $(this).addClass('has-value'); } }); 

简单的解决方案是将元素放在变量中。

 var elem = $("#div a"); if (elem.children().length > 0){ elem.hide(); }