我正在使用jQuery-File-Upload小部件(虽然我相信这个问题可以推广到任何jQuery小部件)。 API指示用户使用fileupload
方法初始化窗口小部件,因此:
$('#fileupload').fileupload();
我的问题是:在不知道身份证的情况下,我如何找到#fileupload
(以及.fileupload()
曾呼唤过他们的任何其他元素?
答案 0 :(得分:4)
jQuery文件上传使用了jQuery UI小部件工厂,并且已知该工厂使用data()注册小部件实例及其扩展的元素。
因此,您可以使用filter()并编写如下内容:
// Restrict ancestor if you can, $("*") is expensive.
var uploadified = $("#yourAncestor *").filter(function() {
return $(this).data("fileupload");
});
更新: 从jQuery UI 1.9开始,the data()
key becomes the widget's fully qualified name, with dots replaced by dashes。因此,上面的代码变为:
var uploadified = $("#yourAncestor *").filter(function() {
return $(this).data("blueimp-fileupload");
});
1.9中仍然支持使用非限定名称但不推荐使用,并且支持将在1.10中删除。