查找在其上初始化了jquery小部件的元素

时间:2012-06-28 19:42:40

标签: javascript jquery widget

我正在使用jQuery-File-Upload小部件(虽然我相信这个问题可以推广到任何jQuery小部件)。 API指示用户使用fileupload方法初始化窗口小部件,因此:

$('#fileupload').fileupload();

我的问题是:在不知道身份证的情况下,我如何找到#fileupload(以及.fileupload()曾呼唤过他们的任何其他元素?

1 个答案:

答案 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中删除。