我克隆了一排元素。克隆后,原始文本框元素将替换为链接。然后,如果用户选择删除克隆的项目,它将以原始形式(即tetxbox)返回到原始位置。这种逆转工作正常。只是没有删除克隆项目。
点击“删除”后,克隆的项目将被删除,但不会全部删除。点击的链接的值将附加到列表中的下一个克隆项目。为什么链接没有被删除?
下面忽略主题名称并关注带有值的链接以RM开头
删除前点击(克隆项目)
这是我克隆的方式:
function getText(param)
{
var clony = $("div.clone_this#"+param).remove().clone(true, true).insertBefore("#sub");
var price = $("input[type=text].text_"+param).val();
// alert(price);
clony.find('input[type=text]').replaceWith("<a href='ch'><span class='green' style='font-style:italic;'>RM "+price+"</span></a>");
clony.find('.cr').append("<a href='del' onclick=removeThis('"+param+"')><img src='/register/cross.png'></a>");
}
这是我删除和更改回原始元素形式的方法。
function removeThis(param)
{
event.preventDefault();
$("div.clone_this#"+param).detach().appendTo("#sub");
var price = $("a[href=ch]").text();
$("div.clone_this#"+param).find($("a[href=ch]").text(price)).replaceWith("<input type='text' onfocusout='getText("+param+")' class='text_"+param+"' val='"+price+"' placeholder='RM'>");
$("div.clone_this#"+param).find("a[href=del]").remove();
return false;
}
由jquery
注入的HTML(仅限包装)内容 <h2>Finally, choose your Course:</h2>
<div class="row">
<div class="small-12 medium-12 large-12 columns" class="choosen_subjects">
</div>
</div>
<div class="row">
<div class="small-12 medium-12 large-12 columns" id="sub">
<!--original list goes here-->
</div>
</div>
答案 0 :(得分:0)
最后,我自己找到了答案。 $(this)的使用解决了我的问题。
function removeThis(param)
{
event.preventDefault();
$("div.clone_this#"+param).detach().appendTo("#sub");
var price = $("a[href=ch]").text();
$(this).find($("#sub a[href=ch]").text(price)).replaceWith("<input type='text' onfocusout='getText("+param+")' class='text_"+param+"' val='"+price+"' placeholder='RM'>");
$("div.clone_this#"+param).find("a[href=del]").remove();
return false;
}