jQuery-jquery 动态删除ID相同的对象的问题

小组聊天灌水 小组聊天灌水 主题:993 回复:2175

jQuery-jquery 动态删除ID相同的对象的问题

偏爱自由 发布于 2017-05-11 字数 354 浏览 1443 回复 3

页面里动态添加许多相同的ID的div,比如:

<table>
<tr><td></td></tr>
<tr><td>
<div id="divID0"><select></select><input></div>
</td></tr>
<tr><td></td></tr>
</table>

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(3

清晨说ぺ晚安 2017-10-08 3 楼

最好不要在页面上有多个相同名称的id,这个时候可能class更适合。
针对你的问题,我做了个demo,供参考:

http://jsbin.com/epehig/1/edit

代码如下:

<div class="divClass">aaaaaa</div>
<div class="divClass">bbbbb</div>
<div class="divClass">cccc</div>

<a href="###" id="del_last" >删除最后一个</a>

$("#del_last").click(
function(){
$("div.divClass:last").remove();
return false;
}
);

至于你的delRow函数,如果在其他地方调用,可以这样定义:

function delRow() {
$("div.divClass:last").remove();
}

UPDATE:如果非要使用id,可以这样来操作:
http://jsbin.com/epehig/2/edit

偏爱自由 2017-09-29 2 楼

首先说下,你写的那个动态删除的函数不会将所有元素删掉,jquery id选择器只能获得一个元素,不是数组。一般情况下如果id重复,如:$('#test') 获取到的是第一个id为test的元素。所以删除也是从第一个开始删。如果想删除最后一个元素,那么将id作为属性来过滤,然后在从中找到最后一个删除。

再顺便说句,如果id都一样,没有必要delRow(who) 传参数了。 直接:

$('div[id="divID0"]').last().remove(); 这样就可以了。

//动态删除行
function delRow(who) {
    $('div[id="'+who.id+'"]').last().remove();
}
浮生未歇 2017-08-28 1 楼

你将这此动态生成DIV的外层包一个元素,然后就能删除了呀

 <script language="javascript">
$(function(){
$('.add').click(function(){
$('.wrap').append("<div>test</div>");
});

$('.del').click(function(){
    $('#wrap div:last').remove();
});

});
</script>

以下是HTML元素

 <div class="wrap">
<div id="divID">aaaaaa</div>
<div id="divID">bbbbb</div>
<div id="divID">cccc</div>
</div>
<button class="add">add</button>
<button class="del">del</button>