Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t不';这个jQuery删除函数不起作用吗?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么';t不';这个jQuery删除函数不起作用吗?

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(); 我

我试图学习使用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(); 我--; } 返回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;
});