2010-05-12 2 views
0

EDIT: Я хотел бы avoid делать что-то вроде этого:jQuery: Быстрый вопрос. Как выбрать строковую переменную?

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

+0

вы могли бы хотеть, чтобы попытаться объяснить, у наша мотивация. В настоящее время не понятно, почему вы хотите использовать jQuery для чего-то, для чего он не предназначен, вместо использования простого фрагмента javascript. –

ответ

0

Поместите значение в массиве, они вы можете использовать метод 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); 
}); 
4

JQuery селекторы не работают, как это. Вся идея состоит в том, что они выбирают элементы Document Object Model (DOM). Другими словами, теги в вашем документе HTML (страница).

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

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

+0

Я хочу этого не делать: var str = Hello; if (str == 'Hello') { alert (str); } Я бы предпочел: $ (str) .filter ('contains ("Hello")'). Each (function() {alert (this)}); –

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