JQuery搜索功能,为什么我的设备不隐藏?

时间:2013-12-31 10:10:06

标签: javascript jquery html

Het伙计们, 即时通讯使用JQuery和东西是我在div中有一些显示元素。 这是我们的网站来源:

<div id="application-list" class="row boxes">
    <h1>nowa3</h1>
    <div class="box col-md-4" id="Acrobat Reader 10">
        <div class="thumbnail">
            <div class="caption">
                <h3><img class="icon" src="/Acrobat%20Reader%2010.png" alt="Acrobat Reader 10" /> Acrobat Reader 10</h3>
                <div class="row">
                    <div class="pull-right"> <a data-toggle="modal-loading" data-target="#application-launching-modal" target="application-launcher" href="/Acrobat%20Reader%2010.ica" class="btn btn-sm btn-primary">Run</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

我想做搜索功能。我确实输入了输入fild并提交了按钮,我设置了这样的代码:

$(document).ready(function() {
    $('#button').click(function () {
        var value = $('#appName').val();
        $('.col-md-4').each(function() {
            if ($(this).contains($(this), value)) {
                $(this).show();
            }
            else $(this).hide();
        });   
    });     
});

其中#button是subbmit按钮的id,#appName是输入字段的id,而.col-md-4是我想在搜索时隐藏显示的div类? 当我想要警告$(this).id它没有显示任何按钮点击警告输入的值时,它不起作用。怎么了?

<input type="text" id="appName"><button type="submit" id="button">Find</button>

之前: <div id="application-list" class="row boxes">

1 个答案:

答案 0 :(得分:0)

jQuery .contains()检查一个元素是否是另一个元素的后代,并且不检查元素中是否存在字符串,你应该使用indexOf()

$('#button').click(function () {
    var value = $('#appName').val();
    $('.col-md-4').each(function() {
        if ( $(this).text().indexOf(value) != -1 ) {
            $(this).show();
        } else {
            $(this).hide();
        }
    });   
});     

:contains伪造的选择器,与.contains()

不同
$('#button').click(function () {
    var value = $('#appName').val();
    $('.col-md-4').hide().filter(':contains('+value+')').show();
});