0
<ul class="filter">
<li>
<span class="filtertext"><span>Filter</span></span>
<ul class="dropdown">
<li class="active"><a href="javascript:void(0)">All</a</li>

<li><a href="#">Administrative Associates</a></li>
<li><a href="#">Associate Principals</a></li>
<li><a href="#">Associates</a></li>
<li><a href="#">Chief Financial Officer</a></li>
<li><a href="#">Directors</a></li>
<li><a href="#">Principals</a></li>
<li><a href="#">Senior Associates</a></li>
<li><a href="#">Staff</a></li>
</ul></li>
</ul>

流砂でフィルターを設定しましたが、上記のリストに自分のサイトのドロップダウンが表示されています。私がやろうとしているのは、タグ内のテキスト「Filter」を、選択されているカテゴリのテキストに置き換えることです。

私はこれを機能させていますが、それは初めてです。.each()のようなものを実装する必要があると感じていますが、正確にどこに配置すればよいかわからないようです。以下は私のjQueryコードです:

$('ul.dropdown li a').click(function (){
$('span.filtertext span').replaceWith( $(this).html() );
});

さらに詳しい情報が必要な場合はお知らせください。ありがとうございました!

4

3 に答える 3

2

初めて機能する理由はreplaceWith、実際に要素を削除するを使用しているためです。次回関数を実行すると、$('span.filtertext span')何も見つかりません。

代わりにこれを使用してください(キャッシュも追加します):

var $filtertext = $('span.filtertext span');
$('ul.dropdown li a').click(function () {
    $filtertext.text( $(this).text() );
});
于 2012-11-15T20:29:48.827 に答える
0

テキストを変更したいので、これを使用する必要があります:

$('ul.dropdown li a').click(function (){ 
    $('span.filtertext span').html( $(this).text() );
});

replaceWithを置換するために使用する場合、置換後にspan一致するオブジェクトがないため'span.filtertext span'...

于 2012-11-15T20:30:03.697 に答える
0

代わりにjQueryの.text()を使用します。

http://jsfiddle.net/6kTQ5/で動作します

これを試して。

$('ul.dropdown li a').click(function (){
    $('span.filtertext span').text( $(this).text() );
});​
于 2012-11-15T20:31:07.463 に答える