Javascript 为什么';t不';这个jQuery删除函数不起作用吗?
我试图学习使用jQuery动态生成html。我一直在研究以下分叉代码Javascript 为什么';t不';这个jQuery删除函数不起作用吗?,javascript,jquery,Javascript,Jquery,我试图学习使用jQuery动态生成html。我一直在研究以下分叉代码 $(函数(){ var myDiv=$('p#u scents'); 变量i=$('#p#p').size()+1; $('#addScnt').live('click',function(){ $(“”).appendTo(myDiv); i++; 返回false; }); $(“#removeButton”).live('单击',函数(){ 如果(i>2){ $(this.parents('p').remove(); 我
$(函数(){
var myDiv=$('p#u scents');
变量i=$('#p#p').size()+1;
$('#addScnt').live('click',function(){
$(“
”).appendTo(myDiv);
i++;
返回false;
});
$(“#removeButton”).live('单击',函数(){
如果(i>2){
$(this.parents('p').remove();
我--;
}
返回false;
});
});
我能够动态地创建额外的输入,这符合我的目的,但由于某些原因,删除功能不起作用。我确信我做错了什么,我已经试着调试了一段时间,没有结果。有人能解决这个问题吗
p、 使用jquery-1.6.4.min.js(这个)指的是按钮,我认为这不是你的目标。
问题是您没有添加
元素
只用
$('<p><label for="p_scents"><input type="text" id="c_name" size="20" name="c_name_' + i + '" value="" placeholder="c_name" /><input type="text" id="c_acc" size="20" name="c_acc_' + i + '" value="" placeholder="c_acc" /><input type="text" id="c_desc" size="20" name="c_desc_' + i + '" value="" placeholder="c_desc" /></label><a href="#" id="removeButton">Remove</a></p>').appendTo(myDiv);
$('')。附录(myDiv);
注意开头的
和结尾的
离题:为什么要使用这些标签?标签应用于将某些内容与输入关联,但您正在使用它们将某些输入与div关联。以下是另一种方法: 代码
$(function () {
var myDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
//here you will have html which will be added every time the add button is clicked
//place it inside the div so it will be easier to find which input to remove
var newInput='<div>'+myDiv.html()+ '<a href="#" id="removeButton">Remove</a>'+'</div>';
$('#addScnt').on('click', function () {
$(newInput).appendTo(myDiv);
i++;
return false;
});
$('#removeButton').on('click', function () {
//removing only the closest div
$(this).closest('div').remove();
return false;
});
});
$(函数(){
var myDiv=$('p#u scents');
变量i=$('#p#p').size()+1;
//在这里,每次单击add按钮时都会添加html
//将其放在div中,以便更容易找到要删除的输入
var newInput=''+myDiv.html()++'';
$('#addScnt')。在('click',函数(){
$(newInput).appendTo(myDiv);
i++;
返回false;
});
$('#removeButton')。在('单击',函数(){
//仅删除最近的div
$(this).closest('div').remove();
返回false;
});
});
这是演示小提琴
更改链接到类的id属性,因为id被认为是唯一的,并且还放置了您要查找的
<a href="#" class="removeButton">Remove</a>
$('.removeButton').live('click', function () {
$(this).parents('p').remove();
return false;
});
$('.removeButton').live('click',函数(){
$(this.parents('p').remove();
返回false;
});
您的原始代码有几个问题。最值得注意的是,您没有增加将导致问题的id
属性,因为这些属性应该是唯一的。如果增加id
属性,则需要更改live语句。最后,remove不起作用,因为您缺少appendTo函数中的标记。这是工作和更新的小提琴
不推荐使用.length而不是.size(),也不推荐使用as.live上的函数overdeduse.on
<a href="#" class="removeButton">Remove</a>
$('.removeButton').live('click', function () {
$(this).parents('p').remove();
return false;
});