2014-12-21 5 views
-4

Я был застрял с .filter() в моем коде; он просто не работал. Хотя я нашел другое решение, но я до сих пор не знаю, почему фильтр не будет работать (и где фильтр должен работать). Я много искал, но на самом деле не нашел ничего убедительного.jQuery .filter() не работает

Вот что это такое:

<form id= "qform"> 
    <input type="radio" name="choice" value="1"/> 1 <br /> 
    <input type="radio" name="choice" value="2"/> 2 <br /> 
</form> 

Метод 1

element = $('#qform input[type=radio]'); 
element = $('#qform :radio'); 

Метод 2

element = $('#qform').find('input[type=radio]') 
element = $('#qform').find(':radio') 

Метод 3

element = $('#qform').filter('input[type=radio]'); 
element = $('#qform').filter(':radio'); 

Может кто-нибудь объяснить, почему 1) & 2) работают нормально, но 3) не делает?

Несмотря на то, что документы jQuery говорят, что 3) также должны работать нормально: http://learn.jquery.com/using-jquery-core/selecting-elements/ Что мне здесь не хватает?

Cheers!

+2

Поскольку 'фильтр()' и 'найти()' сделать две разные вещи. Читайте документы более внимательно. – SLaks

ответ

2

3rd one не работает, потому что у него уже нет типа ввода в выборе.

если вы Вносить вклад в выборе, чем вы можете выбирать тип тех, как показано ниже

element = $('#qform input').filter('[type=radio]'); 
element = $('#qform input').filter(':radio'); 

Reference for filter

+0

Ага, спасибо. – pkc