jQuery: быстрый вопрос. Как выбрать строковую переменную? - PullRequest
0 голосов
/ 12 мая 2010

РЕДАКТИРОВАТЬ: Я хотел бы avoid сделать что-то вроде этого:

var str = 'Hello'; 
if ( str == 'Hello') { 
    alert(str); 
} 

Я бы лучше сделал:

var str = 'Hello'; 
$(str).filter(':contains("Hello")').each(function(){ 
    alert(this) 
});

Я много чего пробовал:

$(str).text().method1().method2().method3();
$(str).val().method1().method2().method3();
$(str).contents().method1().method2().method3();

Ничего не сработало. Возможно ли это сделать?

Спасибо за ваше время.

С уважением,
Marius

Ответы [ 2 ]

4 голосов
/ 12 мая 2010

Селекторы jQuery так не работают. Вся идея заключается в том, что они выбирают элементы объектной модели документа (DOM). Другими словами, теги в вашем HTML-документе (странице).

Если вы хотите использовать строковую переменную, вы можете просто получить к ней доступ напрямую как str. JQuery даже не требуется.

Тем не менее, существует ли конкретный метод (или методы) jQuery, который вы хотели бы использовать для манипулирования строкой?

0 голосов
/ 12 мая 2010

Поместите значение в массив, вы можете использовать метод grep, чтобы отфильтровать элементы в массиве, которые соответствуют критериям:

$($.grep([str], function(e){
  return e == 'Hello';
})).each(function(){
  alert(this);
});

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

(function($){
  $.fn.eq = function(str) {
    return $($.grep(this, function(e){ return e == str; }));
  };
})(jQuery);

Использование:

var str = 'Hello';
$([str]).eq('Hello').each(function(){
  alert(this);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...