12

我正在使用一个if语句来确定一个元素是否有任何子元素。如果它没有任何孩子,我只想对那个元素做点什么。

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

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

所以如果一个<a>标签没有孩子,我想对那个特定的元素(或多个也没有孩子的元素)做点什么。

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

我可能完全错过了一些东西,但我不太确定如何做到这一点。任何意见,将不胜感激

4

3 回答 3

11

编辑:添加了演示链接

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

$("#div a").filter(function () {
  return ($(this).children().length > 0)
}).hide();
于 2012-04-03T22:20:18.290 回答
9

你可以使用 each 来遍历元素

$('input').each(function(){
  if ($(this).val()) {
    $(this).addClass('has-value');
  }
});
于 2015-10-09T00:02:51.997 回答
3

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

var elem = $("#div a");
if (elem.children().length > 0){
    elem.hide();
}
于 2012-04-03T22:21:11.380 回答