jQuery在if语句中使用'this'

scf*_*rg5 11 jquery if-statement this

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

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

if ($("#div a").children().length > 0){
    $(this).hide();
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Sel*_*gam 10

编辑:添加了DEMO链接

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

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


小智 8

你可以使用每个迭代元素

$('input').each(function(){
  if ($(this).val()) {
    $(this).addClass('has-value');
  }
});
Run Code Online (Sandbox Code Playgroud)