1

選択ボックスとして機能するリストがあるので、選択したアイテムをクリックするとリストが表示され、別のアイテムを選択できます。

これは正常に機能しますが、2 つ以上のリストを作成しようとすると、選択したすべての名前 (.clonedスパン) への選択したコピーの名前が、次の名前の 1 つだけになるはずです。jsfiddle の例では、"Item 1.1Item 2.2" の場合、クラスが複製された最初のスパンは "Item 1.1" のみを表示し、"Item1.1Item2.2" を表示する下のスパンは、2 番目のリストでタイトル/選択された項目であるため、"Item2.2" となる必要があります。 .

問題は次のコードにあることがわかりました。

$(".cloned").text($(".selected").text());

私は次のことを試しましたが、うまくいきません:

$(".cloned").text($(".options").closest(".selected").text());

.selectedリストのクラスをその.cloneすぐ下のリストのスパンにのみ表示するにはどうすればよいですか?

デモ: http://jsfiddle.net/9BR9h/1/

4

1 に答える 1

2

closest最もparent近い要素ではなく、選択した要素の最も近い要素を選択します。メソッドを使用できparentますprev

$('.options li').click(function () {
    $(this)
          .addClass('selected')
          .siblings()
          .removeClass('selected')
          .parent()
          .hide()
          .prev('.cloned')
          .text(this.textContent || this.innerText);
});

http://jsfiddle.net/B2nZH/

textページの読み込み時に、 's関数を使用できます。

$(".cloned").text(function(){
     return $(this).next().find(".selected").text()
});

http://jsfiddle.net/zKfX2/

于 2013-02-19T13:58:28.847 に答える