Javascript jquery删除而不是删除
我有一张表格:Javascript jquery删除而不是删除,javascript,jquery,html,forms,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:
<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>
删除隐藏的内容,如下所示:
function remove_hidden(element){
alert($(element).children('.fieldname').length);
$(element+'.fieldname').remove();
alert($(element).children('.fieldname').length);
}
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);
}
和add_fieldname如下所示:
function remove_hidden(element){
alert($(element).children('.fieldname').length);
$(element+'.fieldname').remove();
alert($(element).children('.fieldname').length);
}
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">
但是移除隐藏并不是移除!
我知道选择器是正确的,因为警报正好是这些输入标记的数量,但它们只是没有被删除。为什么?我还尝试了$(element+).remove('.fieldname')代码>,这也不起作用。尝试更换
$(element+'.fieldname').remove();
与
试着替换
$(element+'.fieldname').remove();
与
如果我没有弄错这个源代码,一方面,当您使用add_fieldname函数添加一个fieldname时,您得到的输入上没有ID。您可能希望将其设置为易于使用。
另一方面,在remove_hidden函数中,您警告了元素.fieldname
,但试图删除元素.fieldname
(注意类名前面缺少空格),因此我认为remove_hidden函数中需要此选项:
$(element+' .fieldname').remove();
我希望它能有所帮助。如果我正确地获取了这个源代码,一方面,当您使用add_fieldname函数添加字段名时,您在输入上没有ID。您可能希望将其设置为易于使用。
另一方面,在remove_hidden函数中,您警告了元素.fieldname
,但试图删除元素.fieldname
(注意类名前面缺少空格),因此我认为remove_hidden函数中需要此选项:
$(element+' .fieldname').remove();
我希望它能有所帮助。在这行删除隐藏的
//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();
编辑:在上面添加注释,以便在删除隐藏的
//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();
编辑:在上面添加注释以稍微澄清问题,因为.remove([selector])决定删除什么
他们的文件一开始让我很反感。您试图删除的内容必须已经在集合中(remove方法中的任何选择器都不会删除整个集合)
Ex:删除输入。字段名:
$(element).find('.fieldname').remove('.fieldname');
$(element).find('input').remove('.notfieldname');
或(对于较大的案例收集案例):
Ex:不删除输入。字段名:
$(element).find('.fieldname').remove('.fieldname');
$(element).find('input').remove('.notfieldname');
这是因为.remove([selector])决定删除什么
他们的文件一开始让我很反感。您试图删除的内容必须已经在集合中(remove方法中的任何选择器都不会删除整个集合)
Ex:删除输入。字段名:
$(element).find('.fieldname').remove('.fieldname');
$(element).find('input').remove('.notfieldname');
或(对于较大的案例收集案例):
Ex:不删除输入。字段名:
$(element).find('.fieldname').remove('.fieldname');
$(element).find('input').remove('.notfieldname');
你能做个演示吗?$(element+'.fieldname')
正在选择什么?尝试console.log($(element+'.fieldname'))
it。同样正如前面提到的,您可以将演示放在这里:element.attr('fieldname')
。。。好了,没有名为fieldname
的属性。是的,正如我所说,“我知道选择器是正确的,因为警报正好是这些输入标记的数量,但它们不会被删除。”。我试着编一把小提琴。将字段名
用作类
和输入字段名几乎肯定会导致混淆。你能演示一下吗?$(element+'.fieldname')
正在选择什么?尝试console.log($(element+'.fieldname'))
it。同样正如前面提到的,您可以将演示放在这里:element.attr('fieldname')
。。。好了,没有名为fieldname
的属性。是的,正如我所说,“我知道选择器是正确的,因为警报正好是这些输入标记的数量,但它们不会被删除。”。我会试着摆弄一下。将字段名
用作类
和输入字段名几乎肯定会导致混淆。谢谢!你知道为什么$(element).remove('.fieldname')不起作用吗?那可能是因为你原来的选择器选择了一个类为fieldname
,但你真的想用fieldname
的类删除element
的子元素,我误读了你的评论。我不知道为什么$(element).remove('.fieldname')
不起作用。这是因为remove中的选择器“过滤匹配的元素集”来决定删除什么。他们的文件一开始让我很反感。您试图删除的内容必须已包含在集合中(remove方法中的任何选择器都不会删除整个集合)。谢谢!你知道为什么$(element).remove('.fieldname')不起作用吗?那可能是因为你原来的选择器选择了一个类为fieldname
,但你真的想用fieldname
的类删除element
的子元素,我误读了你的评论。我不知道为什么$(element).remove('.fieldname')
不起作用。这是因为remove中的选择器“过滤匹配的元素集”来决定删除什么。他们的文件一开始让我很反感。您试图删除的内容必须已经在集合中(remove方法中的任何选择器都不会删除整个集合)。