javascript - jquery 删除不删除

标签 javascript jquery html forms

所以我得到了这个表格:

<form id="imageinputpopup" class=suggestionsubmit style="display: none">
    <span>Add a thing!</span><br/>
    <label>url: </label><input name="imageurl" type="url"><br/>
    <label>file: </label><input name="imagefile" type="file"><br/>
    <input type='hidden' name='schoolid' class="schoolid">
    <input type="submit" value="Submit">
</form>

以及此点击处理程序:

$(".allow-submission").live('click', function(){
    if($(this).attr('inputtype')=="colorpicker"){
        ....
    } else if($(this).attr('inputtype')=="image"){
        remove_hidden("#imageinputpopup");
        add_fieldname($(this), $("#imageinputpopup"));
        $("#imageinputpopup").dialog();
    } ....
});

remove_hidden 看起来像:

function remove_hidden(element){
    alert($(element).children('.fieldname').length);
    $(element+'.fieldname').remove();
    alert($(element).children('.fieldname').length);
}

add_fieldname 看起来像:

function add_fieldname(element, addto){
    var elementname = document.createElement('input');
    elementname.type = 'hidden';
    elementname.name = 'fieldname';
    elementname.value = element.attr('fieldname').replace(' ', '_');
    $(elementname).addClass('fieldname');
    addto.append(elementname);
}

正如我所料,每次点击都会添加一个这样的标签:

<input type="hidden" name="fieldname" value="mascot_image" class="fieldname">

但是remove_hidden并没有删除! 我知道选择器是正确的,因为警报正是这些输入标签的数量,但它们只是没有被删除。为什么?我还尝试了 $(element+).remove('.fieldname'); 但这也不起作用。

最佳答案

在这行remove_hidden

//Select the element with the id of element AND has the class of fieldname
$(element+'.fieldname').remove();

尝试在 . 之前添加一个空格,如下所示:

//Select the children of element which have a class of fieldname
$(element+' .fieldname').remove();

编辑:在上面添加注释以澄清一些事情

关于javascript - jquery 删除不删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339459/

相关文章:

javascript - 考虑到堆叠层上下文,如何处理 javascript 键绑定(bind)?

javascript - 将未定义的 JSON 转换为新的 JSON 对象

html - div 导致下一部分不可见

javascript - 屏蔽输入在桌面上工作正常,在移动设备上工作正常

javascript - 表格拖放重新排序和列排序

javascript - 如何在不破坏代码的情况下删除链接

javascript - AngularJS - $httpProvider,注册拦截器时出现未知提供程序错误

javascript - 从匿名回调传回值的最简单方法?

jquery - 选择 JQuery-UI 选项卡标题中的文本到剪贴板

javascript - deferred 的回调在 promise 未决时执行