我有几个在上传文件后动态生成的div。每个文件上传都会以这种格式创建一个div:
<div id="uploadifive-fileupload-queue" class="uploadifive-queue">
<div class="uploadifive-queue-item complete" id="uploadifive-fileupload-file-0">
<div id="inputs">
some text
</div>
</div>
</div>
上传的每个项目都会将uploadifive-queue-item类的id增加到uploadifive-fileupload-file-0,uploadifive-fileupload-file-1,uploadifive-fileupload-file-2等。
我要做的是将一个类添加到#inputs
,但只添加一个刚创建的类。
我可以使用:最后一次我只上传一个,但如果我同时选择多个,它只适用于该组中的最后一个div。
我正在寻找的是一个$(this)或一种定位这个独特div的方法。
$('#fileupload').uploadifive({
'buttonClass' : 'btn btn-primary',
'buttonText' : 'Select Thumbnail',
'dnd' : false,
'fileSizeLimit' : 1000,
'method' : 'post',
'simUploadLimit' : 1,
'uploadScript' : './upload/',
'onUploadComplete' : function(file, data) {
$("#uploadifive-fileupload-queue .uploadifive-queue-item:last").find('#inputs').addClass('alert-error');
}
});
#fileupload
只是表单的名称,这是HTML:
<form id="fileupload">
<input type="file" name="userfile" size="20" />
</form>
div直接添加到下面并位于同一个容器中。
如何选择正确的div?
答案 0 :(得分:1)
重复的ID是问题的一部分,请尝试将它们更改为类名或唯一值。
另一部分是:
$("#uploadifive-fileupload-queue .uploadifive-queue-item:last")
...在第一个,唯一的.uploadifive-queue-item
元素中选择最后一个(也是唯一的)#uploadifive-fileupload-queue
:http://jsfiddle.net/aLRhL/2/
所以dupe id和错误的选择器都是问题所在。请改为尝试此操作,将id="inputs"
更改为class="inputs"
并使用:
$(".uploadifive-queue:last .inputs").addClass('alert-error');
...并确保修复其余的重复ID。
即使使用了重复ID,如果你有正确的选择器,它也会should work,但不要依赖它。