1

次のような機能が必要です。Mary Smith などの名前をクリックすると、別の ul 要素と li 要素でデータ名の値が動的に生成されます。その部分は機能していますが、すべての li 要素をその値に変更しないようにする必要があります。Mary Smith または Tom Jones がクリックされるたびに、その値で li を作成する必要があり、既存の値を変更しないでください。

ここでフィドルを見つけることができます: http://jsfiddle.net/rsxavior/zHkS8/3/ 基本的に、.account-select クラスが関数の「this」値と見なされるかのように機能する必要があります。それを行う方法がわかりません。

<ul>
    <li><a href="#" class="account" data-name="John Smith">John Smith</a></li>
    <li><a href="#" class="account" data-name="Mary Jones">Mary Jones</a></li>
</ul>

<ul class="account-hidden-li"></ul>

$('.account').click(function () {
    $('.account-hidden-li').append('<li class="account-select"><a class="close bcn-close" data-dismiss="alert" href="#">&times;</a></li>');
    $('.account-select').text($(this).data("name")).prependto();
});

http://jsfiddle.net/rsxavior/tS9H8/9/

4

2 に答える 2

2

:lastセレクターを使用できます:

$('.account-select:last a').text($(this).data("name"));

http://jsfiddle.net/FwTYe/

または:

$('.account').click(function () {   
    var txt =  $(this).data("name");
    $('<li/>', {
        'class': 'account-select',
        'html': '<a class="close bcn-close" data-dismiss="alert" href="#">'+txt+'</a>'
    }).appendTo('.account-hidden-li')
});

http://jsfiddle.net/42FYA/

于 2012-09-21T12:22:38.377 に答える
0

少し混乱しています。コードに別のエラーがある可能性があります。を使用し.text()て、<a>各 li.account-select 内の要素を消去しています。

これで質問が解決し、「閉じる」リンクも保持されると思います。

$('.account').click(function () {
    $('.account-hidden-li').append('<li class="account-select">'+$(this).data("name")+'<a class="close bcn-close" data-dismiss="alert" href="#">&times;</a></li>');
});
于 2012-09-21T12:46:35.793 に答える