Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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/0/laravel/10.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
jQuery.remove()赢得';t删除动态输入项_Jquery - Fatal编程技术网

jQuery.remove()赢得';t删除动态输入项

jQuery.remove()赢得';t删除动态输入项,jquery,Jquery,我有一个文件上传部分。添加文件会触发上载并传回文件名。该文件名被添加到数组中的隐藏输入元素中。它也被截断并以的形式显示给用户 这将添加: function addFile(filename, imgName, id) { $("#fileGroup ul").append('<li id="file' + id + '" class="list-group-item attachment"><div class="pull-right"><a href="#

我有一个文件上传部分。添加文件会触发上载并传回文件名。该文件名被添加到数组中的隐藏输入元素中。它也被截断并以
  • 的形式显示给用户

    这将添加
  • function addFile(filename, imgName, id) {
        $("#fileGroup ul").append('<li id="file' + id + '" class="list-group-item attachment"><div class="pull-right"><a href="#" onclick="return trash_click(' + id + ')"><i class="btn-icon fa fa-trash"></i></a></div><span>' + filename + '</span></li>');
    }
    
    起初我认为可能是数组部分不允许删除,但我只使用一个简单的“#mytest”作为id进行了测试,但表单元素不会删除


    想法?

    我找到了答案。显然,因为输入元素被附加到表单中,所以我必须专门调用表单来删除它

    var request = 'RequestFileName[' + id + ']';
    var myRequestFile = $("#requestForm input[name='" + request + "']");
    myRequestFile.remove();
    return false;
    

    我找到了答案。显然,因为输入元素被附加到表单中,所以我必须专门调用表单来删除它

    var request = 'RequestFileName[' + id + ']';
    var myRequestFile = $("#requestForm input[name='" + request + "']");
    myRequestFile.remove();
    return false;
    

    问题是括号
    [
    ]
    是特殊字符,在选择器方面,因此必须对其进行转义才能正常工作。jQuery的“妙处”在于它只是默默地失败了,但是如果您尝试使用
    document.querySelector
    运行相同的选择器,您会注意到有一个错误:

    document.querySelector('#RequestFileName[1]')。值='1'
    
    问题在于括号
    [
    ]
    是特殊字符,按选择器选择,因此必须对其进行转义才能正常工作。jQuery的“妙处”在于它只是默默地失败了,但是如果您尝试使用
    document.querySelector
    运行相同的选择器,您会注意到有一个错误:

    document.querySelector('#RequestFileName[1]')。值='1'
    
    $('#RequestFileName['+i+']')。删除()。。。将id改为i:“若要使用任何元字符(如
    !”#$%&'()*+,./:;?@[\]^`{124}~
    )作为名称的文字部分,必须使用两个反斜杠进行转义:\\。例如,具有
    id=“foo.bar”
    的元素可以使用选择器
    $(“#foo\\\.bar”)
    ,这是我的错误,无法将代码放入问题中。它实际上是:$('#RequestFileName['+id+'])。remove();在其上放置警报或断点,以查看函数中id的值。我怀疑这是单击的项目的整个id,而不是项目的编号。您确定文件名中没有空格$('#RequestFileName['+I+'])。remove();…将id改为I:“使用任何元字符(如
    !”。$%&')*+,./:;?@[\]^``{124}
    )作为名称的文字部分,必须使用两个反斜杠进行转义:\\。例如,一个带有
    id=“foo.bar”
    的元素可以使用选择器
    $(“#foo\\.bar”)
    ,这是我把代码放到问题上的错误之处。它实际上是:$('#RequestFileName['+id+']')。remove();在函数中放置一个警报或断点以查看id的值。我怀疑是点击项目的整个id,而不是项目的编号。你确定文件名中没有空格吗?你完全正确。谢谢你的正确答案。当然,没问题。知道这种棘手的事情总是好的你是绝对正确的。谢谢你的正确答案。当然,没问题。知道这种棘手的事情总是好的斯皮因的答案实际上是正确的。我在不知道最好的方法的情况下找到了一个解决办法。皮音的回答实际上是正确的。我在不知道最好的方法的情况下找到了一个解决办法。
    function trash_click(id) 
    {
        $('#file' + id).remove();
        $('#RequestFileName[' + id + ']').remove();
        return false;
    }
    
    var request = 'RequestFileName[' + id + ']';
    var myRequestFile = $("#requestForm input[name='" + request + "']");
    myRequestFile.remove();
    return false;