1

これはかなり単純なはずです。基本的に、リスト内の項目をクリックすると、そのテキストがターゲット div に挿入/置換されます。「replaceWith」は、元のデータを削除するため、おそらく使用するものではありません。また、ターゲット div のテキストに「選択済み」のクラスをどのように追加しますか。

とにかく、ここに私がこれまでに持っているものがあります: http://jsfiddle.net/BM8Cb/

HTML

<div class="selected" id="here">
   <li>All</li>
</div> 
<hr>
<ul>
  <li>All</li>
  <li>Category 1</li>
  <li>Category 2</li>
  <li>Category 3</li>
</ul>

CSS

ul {list-style:none;padding:0; margin:0;}
li {cursor:pointer;}
li:hover {color:red;}
.selected {color:red;}

JS

$("li").click(function() {
  $("#here").replaceWith(this);

});

助けてくれてありがとう

4

3 に答える 3

1

どうですか

$("li.item").click(function() {
    $("#here").html($(this).html());
});  

必要なのはテキストだけです。

于 2013-07-29T21:37:17.507 に答える
0

JS を次のように変更します。

$("li.item").click(function() {
    var item = $(this).clone();
    item.attr("class","selected");
    $(".selected").append(item)    
    $(this).hide();
});

これがフィドルです:http://jsfiddle.net/J7JST/2/

これにより、選択したクラスがアイテムに追加されます

于 2013-07-29T21:35:54.170 に答える
0

replaceWith を使用すると DOM ノードが置き換えられるため、次回の試行時には存在しなくなります。追加を使用する必要があります

$("#here").append(this);

「this」を使用すると、イベント ハンドラーを含むすべてをコピーできます。テキストだけが必要な場合は、次のようなことができます

$("#here").append(this.innerHTML);
于 2013-07-29T21:38:15.323 に答える