0

我有几个在文件上传后动态生成的 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,但只添加一个刚刚创建的类。

当我一次只上传一个时,我可以使用 :last 来做到这一点,但如果我同时选择多个,它只适用于该组中的最后一个 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?

4

1 回答 1

1

重复的 id 是问题的一部分,尝试将它们更改为类名或唯一值。

另一部分是:

$("#uploadifive-fileupload-queue .uploadifive-queue-item:last")

...选择第一个唯一元素中的最后一个(也是唯一一个):.uploadifive-queue-itemhttp : //jsfiddle.net/aLRhL/2/#uploadifive-fileupload-queue

所以欺骗ID和不正确的选择器是问题所在。试试这个,改为id="inputs"class="inputs"使用:

$(".uploadifive-queue:last .inputs").addClass('alert-error');

...并确保修复其余的重复 ID。

即使使用欺骗 ID,如果您有正确的选择器,它也应该可以工作,但不要依赖它。

于 2012-07-11T23:06:26.180 回答