2009-06-11 2 views
2

Я хотел бы отфильтровать несколько пролетов с текстом, который они содержат:LIKE MySQL в JQuery

$('spanFilter').filter(function(){ 
    var html = $(this).html(); 
    return //comparison html LIKE %asdf% 
}); 

В сравнении, я пытаюсь сделать что-то вроде LIKE в MySQL:

field LIKE %asdf% 

Как я могу это достичь?

ответ

3
field LIKE %asdf% 

может работать как

$("span:contains('asdf')") 

:contains(text) - Соответствует элементам, которые содержат заданный текст.

1

Не уверен, что именно вы после, но вы можете использовать селектор :contains(). Например:

$('spanFilter').filter(function(){ 
    var html = $(this).html(); 
    $("span:contains(asdf)", this).addClass('highlight"); 
}); 
+0

Вы имели в виду не использовать переменную 'html'? – TStamper

+0

Подумайте об этом, переменная html не нужна. – cletus

0

Есть много способов сделать это:

  1. просто: с помощью IndexOf

    возвращение html.indexOf ('ASDF')> = 0;

  2. комплекс: использовать RegExp

    возвращение /asdf/.test(html);

Обратите внимание, что RegExp более мощные и могут соответствовать различным текстам. Here's a guide about them.