Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery using 'this' in an if statement

I'm using an if statement in order to determine if an element has any children. If it does NOT have any children, I want to do something to that element only.

Here's the premise of what I'm trying to do:

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

So if an <a> tag has no children, I want to do something to that specific element (or multiple elements that also have no children).

The problem is that this hasn't been defined because it's an if statement.

I could be completely missing something but I'm not quite sure how to accomplish this. Any advice would be appreciated

like image 638
scferg5 Avatar asked Apr 03 '12 22:04

scferg5


2 Answers

you could use each to iterate through elements

$('input').each(function(){
  if ($(this).val()) {
    $(this).addClass('has-value');
  }
});
like image 180
user3716779 Avatar answered Oct 17 '22 10:10

user3716779


Edit: Added DEMO Link

You can use .filter to check the condition and call .hide on the filter results. See below,

$("#div a").filter(function () {
  return ($(this).children().length > 0)
}).hide();
like image 45
Selvakumar Arumugam Avatar answered Oct 17 '22 09:10

Selvakumar Arumugam