2010-08-12 4 views
3

У меня возникли проблемы с попыткой выяснить, является ли родительский элемент не имеет элемент с определенным классом, как так:JQuery - проверить, если родитель не содержит элемент с классом

// после нажатия на кнопку внутри формы - получить экземпляр родительской формы

var par = $ (this) .parent ('form');

если {

// сделать что-то

}

Любая идея, как achievie его (par.has ('предостерегают')!) - а есть() не похоже, что это

ответ

3

.has не возвращает логическое значение, поэтому, если нет совпадений, возвращаемый объект имеет 0 членов.

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
</head> 
<body> 
    <form> 
     <div><input id="thebutton" type="button" value="Click Me" /></div> 
     <div class="test">test div</div> 
    </form> 
<script> 

$(document).ready(function() { 
    $('#thebutton').click(function() { 
     var par = $(this).parent('form'); 
     if(par.has('.warn').length === 0) { 
      // do something 
      alert('nothing'); 
     } 
    }); 
}); 

</script> 

</body> 
</html> 
+0

Вы правы, но 'has' не должны использоваться так, как это происходит - он просто проверяет, имеет ли * форму * класс и удаляет его из набора, если это не так. – Kobi

+0

в соответствии с doco (http://api.jquery.com/has/) проверяет дедов. см. приведенный здесь пример. – Jonathan

+0

Вы правы. – Kobi

Смежные вопросы