使用jQuery </li>获取动态添加<li>元素的Attr(ID)

时间:2013-04-05 16:05:43

标签: javascript jquery

我在获取动态添加的列表元素的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);
});

但我似乎只得到“未定义”的值。任何投入将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

更新

点击li链接

获取<a>的ID
$("#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-item类,但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

答案 1 :(得分:0)

您从中请求ID的元素没有ID。试试这段代码:

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

如果你应该使用jQuery 1.7或更高版本而不是像这样生活:

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