我正在使用jQuery-File-Upload小部件(尽管我相信这个问题可以推广到任何 jQuery 小部件)。API指示用户使用该方法初始化小部件,fileupload
因此:
$('#fileupload').fileupload();
我的问题是:在不知道 ID 的情况下,我怎么能找到#fileupload
(以及任何其他已经.fileupload()
调用它们的元素?
我正在使用jQuery-File-Upload小部件(尽管我相信这个问题可以推广到任何 jQuery 小部件)。API指示用户使用该方法初始化小部件,fileupload
因此:
$('#fileupload').fileupload();
我的问题是:在不知道 ID 的情况下,我怎么能找到#fileupload
(以及任何其他已经.fileupload()
调用它们的元素?
jQuery File Upload 在后台使用 jQuery UI 小部件工厂,并且众所周知,该工厂使用它们使用data()扩展的元素注册小部件实例。
因此,您可以使用filter()并编写如下内容:
// Restrict ancestor if you can, $("*") is expensive.
var uploadified = $("#yourAncestor *").filter(function() {
return $(this).data("fileupload");
});
更新:从 jQuery UI 1.9 开始,键data()
成为小部件的完全限定名称,点被替换为破折号。因此,上面的代码变为:
var uploadified = $("#yourAncestor *").filter(function() {
return $(this).data("blueimp-fileupload");
});
1.9 中仍支持使用非限定名称,但已弃用,并且将在 1.10 中删除支持。