我在删除所有具有相同ID的href链接时遇到问题。这是我的代码片段:
$('.delblk').click(function(e) {
e.preventDefault();
var id = $(this).attr('id').substr(7);
$.getJSON("../ajax_blocked.php?op=delete&id="+id, function(data) {
if (data) {
$("#delblk_"+id).each(function() {
$(this).remove();
});
}
});
我的HTML看起来像这样:
<a href="sent.php" id="delblk_7" class="delblk" ><span class="label label-important">Unblock</span></a>
<a href="sent.php" id="delblk_7" class="delblk" ><span class="label label-important">Unblock</span></a>
<a href="sent.php" id="delblk_8" class="delblk" ><span class="label label-important">Unblock</span></a>
它只删除了第一个href链接而不是它们两个。我错过了什么?
答案 0 :(得分:2)
您永远不会拥有多个ID相同的元素,请使用class
代替id
每个id值只能在文档中使用一次。如果为多个元素分配了相同的ID,则使用该ID的查询将仅选择DOM中的第一个匹配元素。但是,不应依赖此行为;使用相同ID的多个元素的文档无效。
<强> docs 强>
你和你兄弟,父亲或你所在国家的其他人一样有id
吗?
每个HTML页面都像一个国家,id就像id一样......必须唯一。
答案 1 :(得分:2)
问题是您的文档中的ID必须是唯一的,请改用class
属性。
所以你不能使用id (#)
选择器。
但是你可以使用Attribute Equals Selector
来迭代你的元素,检查我的样本和jsFiddle Demonstration
w3c id属性指定HTML元素的唯一ID(id属性值在HTML文档中必须是唯一的。)
$("a[id='delblk_"+id+"']").each(function() {
// ...
});