0

我正在尝试编写一个页面上成千上万个图像缩略图的代码,并且用户希望快速且重复地搜索它们。

所以转向可靠的jQuery。我想出了以下代码:

$(document).ready(function () {
    $('input[name="search"]').keyup(function(e){
        console.log('checking...');
        var $this = $(this);

        if($this.val().length > 3 || e.which == 8 || e.which == 46) {
           var check = 'img[title*="' + $this.val() + '"]';

           $.each($('.asset'), function() {
               $(this).show();
               $(this).not(check).hide();
           })

            console.log(check);
        } else {
            console.log('False');
        };
    });
});

仅部分有效。它失败的一点是,它$(this).not(check).hide();只是隐藏了所有内容,而不只选择标题中带有搜索查询的图像。

有没有办法让 jQuery 完成这个任务?

4

1 回答 1

3
$('input[name="search"]').keyup(function(e){
    console.log('checking...');

    var search = $(this).val();
    if(search.length > 3 || e.which == 8 || e.which == 46) {
       $(".asset img").hide();
       $(".asset img[title*='" + search + "']").show();
    } else {
       console.log('False');
    };
});

您的选择器的问题是$(this).not(check)检查是否$(this)check选择器匹配,但我猜.asset是包含 IMG 的 DIV,而不是图像元素本身。

于 2013-05-10T19:59:01.427 回答