jQuery在if语句中使用'this'

时间:2012-04-03 22:17:56

标签: jquery if-statement this

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

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

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

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

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

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

3 个答案:

答案 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();
}