0

動的に追加されたリスト要素の ID を取得する際に問題が発生しています。次のものが追加されています。

$(".detail-view button").on("click", function(){
    var noItems = $("ul#cart-items li").eq(0).attr("id");
    var detailID = $(this).attr('id');

    var orderTitle = $("#detail-"+ detailID + " span.order-title").text();
    var insertTitle = $("<li><a href=\"#\" class=\"remove-item\"><img src=\"/assets/images/global/intra_remove_item_btn.png\" /></a>"+ orderTitle +"</li>").attr("id", detailID);

    if(noItems == "emptycart") {
        $("ul#cart-items li#emptycart").replaceWith(insertTitle);
        $("#lp-orderform li:even").addClass("highlight");
    } else {
        $(insertTitle).insertAfter("ul#cart-items li:last");
        $("#lp-orderform li:even").addClass("highlight");
    }
});

元のHTMLを次から更新します...

<ul id="cart-items">
    <li id="emptycart">You have no items in your cart.</li>
</ul>

そしてアップデート...

<ul id="cart-items">
    <li id="6955" class="highlight"><a href="#" class="remove-item"><img src="/assets/images/global/intra_remove_item_btn.png"></a>Chicken with Garlic Sauce</li>
    <li id="6966"><a href="#" class="remove-item"><img src="/assets/images/global/intra_remove_item_btn.png"></a>Hunan Shrimp with Black Bean Sauce</li>
    <li id="6965" class="highlight"><a href="#" class="remove-item"><img src="/assets/images/global/intra_remove_item_btn.png"></a>Hunan Pork with Black Bean Sauce</li>
</ul>

a.remove-item をクリックしてそのリスト要素を削除したときに、リスト項目の ID を取得しようとしています。

$("ul#cart-items").live("click", "li a.replace-item", function(){
    var removeItemID = $("li a.replace-item").attr("id");
    alert(removeItemID);
});

しかし、「未定義」の値しか得られないようです。任意の入力をいただければ幸いです。ありがとうございました!

4

2 に答える 2

1

アップデート

リンクliをクリックしてIDを取得するには<a>

$("#cart-items").on("click", "a", function(){
var removeItemID = $(this).parent("li").attr('id');
alert(removeItemID);
});

ワーキングjsFiddle

idクリックしただけで取得するにli

$("#cart-items").on("click", "li", function(){
var removeItemID = $(this).attr('id');
alert(removeItemID);
});

ワーキングjsFiddle


あなたのli要素にはremove-itemclass がありませんが、aハイパーリンクにはあります

liアイテムクリックで検出したい場合

    $("#cart-items").on("click", "li", function(){
    var removeItemID = $(this).find('a').attr("class");
    alert(removeItemID);
});

ワーキングjsFiddle

aそうでなければ、ハイパーリンククリックで検出したい場合

    $("#cart-items").on("click", "a", function(){
    var removeItemID = $(this).attr("class");
    alert(removeItemID);
});

ワーキングjsFiddle

于 2013-04-05T16:20:45.770 に答える