jquery remove not removing
jquery remove not removing
所以我有这个形式:
<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();
编辑:在上面添加了评论以澄清一些问题
如果我正确理解了这个源,一方面,当您使用 add_fieldname 函数添加字段名时,您获得的输入上没有 ID。为了便于使用,您可能需要设置它。另一方面,在 remove_hidden 函数中,您提醒element .fieldname
,但尝试删除element.fieldname
(注意类名前面缺少空格),因此我认为您在remove_hidden函数中需要这个:
$(element+' .fieldname').remove();
我希望它有所帮助。
尝试替换
$(element+'.fieldname').remove();
跟
$(element+' .fieldname').remove();
这是因为.remove([selector])"过滤匹配的元素集"来决定删除什么。
他们的文件起初让我失望。您尝试删除的内容已经需要位于集合中(remove 方法中的任何选择器都不会删除整个集合)。
例如:删除输入字段名称:
$(element).find('.fieldname').remove('.fieldname');
或(对于较大的案例收集案例):
$(element).find('input').remove('.fieldname');
例如:不要删除输入。字段名称:
$(element).find('input').remove('.notfieldname');
相关文章:
- jQuery is not loaded
- AngularJS JSON not arriving php
- $rootScope not working
- reactRedux is not defined
- jQuery document.ready not working
- Javascript/Jquery Blob not showing Chrome PDF
- ReferenceError: not defined
- ReferenceError: cordova is not defined @ng-cordova.min.js:7
- Javascript getElementsByTagName not working?
- jQuery's trim()的前缀为not运算符
- Javascript - element.childNodes does not see an append.newch
- SemanticUI模态not onDeny/onApprove事件未激发
- WebkitTransform not fluent
- JQuery.val( ) not working
- Tomcat websocket is not working
- :not选择器不适用于ul类-备选方案
- Javascript JSON.parse not working
- NodeJS Multer is not working
- jquery remove not removing
- jquery remove() not removing