我使用一个简单的脚本来使用jquery添加和删除div。但它不起作用。 是否需要包含任何文件?谁能帮我。
这是我的代码
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script language="javascript">
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20"
name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
</script>
</head>
<body>
<h2><a href="#" id="addScnt">Add Another Input Box</a></h2>
<div id="p_scents">
<p>
<label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" /></label>
</p>
</div>
</body>
</html>
答案 0 :(得分:1)
.live()
。在jquery中使用.on()
而不是.live()
答案 1 :(得分:0)
试试这个:
$('#addScnt').on('click', function() {
$(scntDiv).append('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20"
name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>');
i++;
return false;
});
$(document).on('click','#remScnt', function() {
if( i > 2 ) {
$(this).parent().remove();
i--;
}
return false;
});
答案 2 :(得分:0)
您的代码实际上有2个错误:
您需要更改&#39; live()
&#39;到&{39; on()
&#39;,并确保您要附加到scntDiv
的HTML字符串没有任何换行符:
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').on('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" class="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#p_scents').on('click', '.remScnt', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
为了删除&#39;按钮继续工作,你必须使用类(因为这些链接中有超过1个添加到DOM)。 我将ID属性更改为类属性,我也更改了
$('#remScnt').live('click', function() {
进入
$('#p_scents').on('click', '.remScnt', function() {
答案 3 :(得分:0)
我已经重构了一些代码来跟踪HTML:
<body>
<h2><a href="#" id="addScnt">Add Another Input Box</a></h2>
<div id="p_scents">
<p>
<input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" />
</p>
</div>
</body>
并遵循Javascript:
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size();
$("#addScnt").on("click",function(){
i++;
$('<p><input type="text" id="p_scnt'+i+'" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" ><a href="#" class="remScnt">Remove</a></p>').appendTo(scntDiv);
});
$("#p_scents").on("click",".remScnt", function(){
// items which need to be deleted are encapsulated within the parent item. You can use parent() to remove everything.
$(this).parent().remove();
i--;
});
});
您可以在此处查看一个有效的示例:http://jsfiddle.net/u7QWA/36/