jQuery 搜索使用 .find 标签内的内容

jQuery search using .find of content inside tags

本文关键字:标签 find 搜索 jQuery      更新时间:2023-09-26

我正在尝试搜索 .list 中的 p 标签内容,我可能只是过于复杂了,但我的警报不起作用,也许是因为页面上的其他代码不起作用,但我想知道是否有人可以帮助我找出我出错的地方。

.JS

            $(document).ready(function() {
            var sresults = $('.mainsearch input').val();
            var sfinder = $('.list p').find(sresults).text(sresults);

            $('.mainsearch input').keyup(function () {
             $('.search-help').append(sfinder);
             alert(sfinder);
            });
            });

.HTML

            <div class="mainsearch">
            <input/>
            <div class="search-help">Results:
            </div>
            </div>

            <div class="list">
            <span><p>test</p></span>
            <span><p>another result</p></span>
            <span><p>yet another result</p></span>
            </div>

这样的东西?

$(document).ready(function() {
     $('.mainsearch input').keyup(function () {
     var sresults = $('.mainsearch input').val();
     var sfinder = $('p:contains('+sresults+')').text();
     $('.search-help').text("Results:" + sfinder);
         alert(sfinder);
     });
});

http://jsfiddle.net/h7uYB/

更新:

试试这个:

http://jsfiddle.net/h7uYB/2/

错别字?

alert(sfiner)

应该是

alert(sfinder)

尝试使用 :contains() 选择器。从网站:

说明:选择包含指定文本的所有元素。 匹配的文本可以直接出现在所选元素中、该元素的任何后代中,也可以显示它们的组合。与属性值选择器一样,:contains() 括号内的文本可以写成裸词或用引号括起来。文本必须具有匹配的大小写才能选择。

所以对你来说:

var sfinder = $('.list p:contains(' + sresults + ')');

您只是想返回与键入的内容匹配的段落吗?然后你想使用:contains()

$(document).ready(function() {
    $('.mainsearch input').keyup(function() {
        var sresults = $('.mainsearch input').val();
        var sfinder = $('.list p:contains("' + sresults + '")');
        //$('.search-help').append(sfinder);
        console.log(sfinder);
    });
});​

http://jsfiddle.net/mblase75/kQnTV/

不过,您可能的目标是:

$(document).ready(function() {
    $('.mainsearch input').keyup(function() {
        var sresults = $('.mainsearch input').val();
        var sfinder = $('.list p:contains("' + sresults + '")');
        $('.search-help').html(sfinder.clone());
    });
});​

http://jsfiddle.net/mblase75/kQnTV/1/