javascript - 删除上次克隆的元素

  显示原文与译文双语对照的内容
0 0

这个线程of类似,我试图为文档的不同部分添加和删除选择框。 但是,当我调用remove函数时,它删除了克隆对象的第一个实例,而不是最后一个实例。 我尝试使用:最后一个子级,但是它们似乎不是工作( 可以能只是一个语法错误) 。

另外,我是否应该为每个克隆的对象分配不同的id? 每个 g:select的目标是选择一个数据库对象,并将所有不同的对象文本编译为 1大字符串( 每个对象都有一个'documentbody'要编译的字段) 。 由于我基本上对每个对象都做了相同的事情,是否需要每个选择分配特定的,。

这是我目前所实现


 <div id="selects">
 <g:select name="intro" 
 id="intro" from="${package.name.Subtag.findAllWhere(tag: package.name.Tag.get(2))}" noSelection="['': 'Please choose Subtag']"/>
 </div>

 <button onclick="addSelect()">Add</button> 
 <button onclick="removeSelect(intro)">Remove</button>


 <g:javascript library="jquery"/>
 <g:javascript>
 function addSelect(){
 var cloner = $("#intro").clone();
 $("#selects").append(cloner);

 }
 function removeSelect(id){
 $("#intro:last-child").remove();

 }

 </g:javascript>

时间: 原作者:

0 0

就像 Jai提到的,问题是你正在克隆和附加带有id的元素,在页面上创建一个重复的id 。 当jQuery按id搜索元素时,它会在找到的第一个元素处停止,而不考虑任何。

问题是页面上的重复,意味着HTML文档无效,所以所有的匹配都被关闭。 旧浏览器甚至可能抛出错误。 如果不允许使用 id,则可以在将它的添加到页面之前从克隆对象中移除它:

cloner.removeAttr('id');

原作者:
...