0

.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>
4

4 に答える 4

1

打ち間違え?

alert(sfiner)

する必要があります

alert(sfinder)

于 2012-06-22T15:34:53.323 に答える
1

:contains()セレクターを使用してみてください。ウェブサイトから:

説明:指定されたテキストを含むすべての要素を選択します。一致するテキストは、選択した要素内、その要素の子孫のいずれか、またはそれらの組み合わせに直接表示できます。属性値セレクターと同様に、:contains()の括弧内のテキストは、裸の単語として記述したり、引用符で囲んだりすることができます。テキストを選択するには、大文字と小文字が一致している必要があります。

だからあなたのために:

var sfinder = $('.list p:contains(' + sresults + ')');
于 2012-06-22T15:35:53.300 に答える
1

このようなもの?

$(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/

于 2012-06-22T15:41:04.607 に答える
0

入力した段落と一致する段落を返そうとしているだけですか?次に、使用したい: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/

于 2012-06-22T15:40:26.580 に答える