2011-01-31 5 views
0

У меня есть список элементов в «этой» переменной. Как я могу найти элемент с определенным атрибутом внутри них?jQuery - выберите элемент с определенным атрибутом из списка элементов

(function($) { 
    $.fn.blah = function(){ 
    var that = this; 
    return this.each(function(){ 
     $(this).bind('change', function(){ 
      $("[name]", that).dostuff(); // <- doesn't seem to work 

      return true; 
     }).change(); 

    }); 
}; 

})(jQuery); 

ответ

3

Метод .filter()help должен это сделать:

$(that).filter('[name]').dostuff(); 
+0

это работает, спасибо. jquery странно: x – Alex

+1

@Alexandra: Почему это странно? Я думаю, вам просто нужно изучить некоторые из важных методов. '$ (" [name] ", that)' не работает, потому что это то же самое, что 'this.find (" [name] ")', который будет искать все * потомки * элементов в 'that' которые соответствуют селектору. –

+1

КПП. 'that' уже является объектом jQuery, поэтому' that.filter' должно быть достаточным. –

1
Будет ли

эту помощь?

var found=$(that).find("thingyousearching"); 
+0

'find' будет искать все потомки выбранных в данный момент элементов, а не самих элементов. –

+0

@ Феликс Клинг - хорошо. это решает ее проблему? так что вы предлагаете? – FeRtoll

+0

@FeRtoll: Нет, это не решит ее проблему. Посмотрите на ответ @ jAndy. –

0

вы также можете использовать :contains

$(that).contains("[name]").dostuff(); 
+0

'.contains' - для выбора элементов, содержащих некоторый текст. В вашем случае вы ищете ': [name]'. OP хочет фильтровать элементы, имеющие атрибут 'name' * *. –

+0

Иногда я сбиваю с толку, какие ответы встают, проголосовали .... –

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