我想刪除一個文本框。如果我使用remove()它只是隱藏。如果我檢查,它顯示「display:none」作爲屬性。使用jQuery刪除元素
基本上我的程序是從numberbox中獲取一個數字n創建這些許多文本框。我正在顯示所有文本框的值。 將數據輸入到所有文本框後,如果我刪除其中一個文本,我不希望打印刪除文本框的數據。但我的代碼正在打印。有什麼辦法可以完全刪除文本框嗎? remove()不能像我期望的那樣工作。
這裏是我的代碼
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
var i=1;
var id=1,text;
// text = '<li><input id="input_'+id+'" type="text"/> <button class="btn2">-</button> </li>';
$("#ok").click(function(){
var number = document.getElementById("num").value;
//alert(number);
for(var $j=i; $j<= number; $j++){
text = '<li><input id="input_'+id+'" type="text"/> <button class="btn2">-</button> </li>';
$("ol").append(text);
id++;i++;
}
});
$("#btn1").click(function(){
text = '<li ><input id="input_'+id+'" type="text"/> <button class="btn2">-</button> </li>';
$("ol").append(text);
id++;i++;
});
$('.divi').on('click','.btn2',function(){
$(this).parents("li").slideUp('medium',function(){
$(this).parents("li").remove();
i--;
});
});
$("#btnprint").click(function(){
var number = document.getElementById("num").value;
var msg="";
for(var j=1; j<=number; j++){
msg+=document.getElementById("input_" +j).value + "<br/>";
}
document.getElementById("printdiv").innerHTML=msg;
});
});
</script>
</head>
<body>
<input type="number" id="num" autofocus="true"></input>
<button id="ok">OK</button>
<br/><br/>
<button id="btn1">+</button>
<div class="divi">
<ol>
</ol>
</div>
<button id="btnprint" >Print Data</button>
<div id="printdiv"></div>
</body>
</html>
使用'$(this).remove();'因爲您已經在''LI'元素的範圍內。 –
你我知道達。但是這裏remove()並不是完全刪除元素。相反,它將從視圖中刪除與隱藏相同的元素。我的意思是即使在刪除後數據仍然存在。 –