我在获取动态添加的列表元素的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);
});
但我似乎只得到“未定义”的值。任何投入将不胜感激。谢谢!
答案 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);
});