我正在使用克隆功能获取深层复制,然后在选择usertype admin时删除briaid(文本框),对于rest usertype选择我想要取回briaid但我无法做到。
注意:我知道我可以再次创建元素(briaid),但我想知道克隆函数可以实现这一点。
$.ajax({
cache: false,
type: "GET",
url: "http://localhost:49326/WebSite1/Service.asmx/calledfunction",
data:{},
contentType: 'application/json',
dataType: "jsonp",
jsonp : "callback",
jsonp: "jsonpcallback",
crossDomain: true,
success: function (result)
{
alert(result);
}
});
我的JavaScript:
<form id="user_login" method="POST">
<select name="role_id" id="acc_type" style="margin-bottom:10px">
<option value="" selected="">Select Account Type</option>
<option value="100" >Admin</option>
<option value="200">Agent</option>
<option value="300">Technician</option>
<option value="400">Support</option>
<option value="500">Email</option>
</select>
<input type="text" placeholder="Username" name="user_code">
<input type="password" placeholder="Password" name="password">
<div id="clone_my_element">
<input type="number" id="briaId" placeholder="Bria ID" name="briaId" required="" autocomplete="off" maxlength="6" oninput="this.value=this.value.slice(0,this.maxLength)">
</div>
<button class="btn btn-large btn-success btn-login" type="submit" >Login</button>
答案 0 :(得分:4)
是的,remove()
函数会在删除后给出元素,以便您可以重复使用它,因此只需将其分配给临时变量即可。像这样:
$(function () {
var a = null;
$(".rem").click(function () {
a = $(".remove").remove();
});
$(".rea").click(function () {
a.prependTo("body");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="remove">This will be removed and readded.</div>
<button class="rem">Remove It</button>
<button class="rea">Readd Back</button>
如果是深度复制,只需使用clone(true, true)
并将其存储在变量中,然后使用remove()
。
答案 1 :(得分:0)
我认为问题是你要删除元素( clone_my_element ),之后你试图将你的克隆元素追加到删除的元素(DOM中不存在)。因此,尝试在相关位置附加克隆元素将解决您的问题。
HTML
<div id="container">
<div id="clone_my_element">
<input type="number" id="briaId" placeholder="Bria ID" name="briaId" required="" autocomplete="off" maxlength="6" oninput="this.value=this.value.slice(0,this.maxLength)">
</div>
</div>
JS
$("#clone_my_element").remove();
$("#container").append(elementclone);
答案 2 :(得分:0)
我个人会使用detach()
而不是remove()
。为什么呢?
detach()
也会移除元素 BUT ,它会保留所有已分配的事件和信息。因此,当您重复使用该项并且项目已分配event
时,event
在重新插入后仍然有效。
这是小提琴:
$(function () {
var a = null;
$(".rem").click(function () {
a = $(".remove").detach();
});
$(".rea").click(function () {
a.prependTo("body");
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="remove">This will be removed and readded.</div>
<button class="rem">Remove It</button>
<button class="rea">Readd Back</button>
&#13;