jQuery隐藏图像,标题中没有$ somestuff

时间:2013-05-10 19:37:43

标签: javascript jquery

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

转向可靠的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完成这项任务?

1 个答案:

答案 0 :(得分: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,而不是图像元素本身。