Функция поиска Jquery с использованием содержит - PullRequest
0 голосов
/ 21 января 2011

Я пытаюсь создать «функцию поиска jquery» и хочу иметь возможность использовать более одного слова для сортировки результатов.

Может кто-нибудь показать мне, как заставить это работать?

Вот что я получил:

$(document).ready(function(){

$('.qid').keyup(function() {  
var keyword = $(this).val().toLowerCase().split(" ");

$(".q").removeClass('show');
$(".q:contains('"+ keyword[0] +"'):contains('"+ keyword[1] +"'):contains('"+ keyword[2] +"'):contains('"+ keyword[3] +"')").addClass('show');
if ($('.qid').val() == '')
{
$('.q').removeClass('show');
}
});

});

Ответы [ 2 ]

2 голосов
/ 21 января 2011

Пожалуйста, прочитайте это: jQuery: содержит селектор для поиска нескольких строк

Я думаю, что это отвечает на ваши вопросы о "содержит".

0 голосов
/ 21 января 2011

Вы можете сгенерировать строку селектора jquery, заменив пробелы содержимым Попробуйте это:

<script type="text/javascript">
    $(document).ready(function(){  
        $('.qid').keyup(function() {   
            var keyword = $(this).val().replace(/\s+/g, " ").replace(/\s+$|^\s+/g, "");  
            var containsString = keyword;
            $(".q").removeClass('show');
                        containsString = ".q:contains("+containsString+")".replace(".q:contains()","");
            console.log(containsString);
            $(containsString).addClass('show');
            if ($('.qid').val() == ''){
                $('.q').removeClass('show');
            }
        });
});

</script>

Тест:

<div>John Resig</div>
<div>George Martin</div>
<div>Malcom Cybernate Sinclair</div>
<div>J. Ohn</div>


<script>
    var baseText = "John Cybernate"
    var containsString = baseText.replace(" ", " ,div:contains(");
    $("div:contains(" + containsString + ")").css("text-decoration", "underline");
</script>

Проверьте сообщение @: http://www.jsfiddle.net/RUF4P/4/ (Тип Lorem Ipsum)

...