1

ここに私のために働くjqueryコードのスニペットがあります:

   onSelect: function() {
        var thevalue = $(this).val();
        jQuery('#input').val(thevalue);
    }

マークアップは次のようになります: text があり、その後に自動提案されたアイテムのリストがあります

<ul class="ac_results">
<li><span class="suggested">
  <span class="ac_matched">(matched text)</span>
 (rest of auto-suggested text)</span>
<div class="count">(number)</div>
 </li>
repeat..
repeat...
etc...
</ul>

このマークアップと jQuery の組み合わせは機能しますが、数値を含む完全な文字列を入力フィールドに返します。その番号を省略したいので、次のようにしました。

   onSelect: function() {
        var thevalue = $(this).find(".suggested").text();
        jQuery('#input').val(thevalue);
    }

空に戻ります。

数値は何でもかまいませんし、スパンには数値を含めることができるので、数値を除外するだけでうんざりしています。

4

1 に答える 1

0

あなたは HTML を投稿していませんが、明らかな疑いは次のとおりです。

$(this).find(".suggested")

要素を返していません。他のものを選択する前に、チェーンが jQuery のスタックに要素を持っていることを常に確認してください。

これは簡単にテストできます:

alert($(this).find(".suggested").length);

が得られた場合0、それは何にも一致していません。アラートがまったく表示されない場合は、関数全体が実行されていません。

于 2012-07-29T17:56:02.453 に答える