如何访问jquery对话框引用的div元素?

时间:2016-10-25 00:58:41

标签: javascript jquery jquery-ui-dialog

我有一些javascript代码,它会创建一个对话框,看起来像这样:

 $( function () {
    $('.hoverList').dialog({
    autoOpen: false,
    hide: {
        effect: "fade",
        duration: 400
    },
    title: $(this).data("title"),
    modal: false
});};

在这种情况下,页面上可能有多个hoverlist类元素。我遇到的问题是上面的这一行:

title: $(this).data("title")

在我的pag上,包含我的对话框的div看起来像这样:

<div class='hoverlist' data-title='My Dialog Title'>...</div>

当javascript运行时,$(this)在对话框的'title:'键中返回引用文档本身,而不是该对话框指令所适用的元素,因此数据(“title”)的此处无法访问<div>元素。

请注意,同一页面上可能有几个hoverlists,所以我不能只通过id而不是类选择它而不重复重新创建相同的代码。试图弄清楚我如何使用<div>的数据元素中引用的标题构建对话框,我将其转换为对话框。怎么可能这样呢?

1 个答案:

答案 0 :(得分:1)

如果你想这样做,那么你需要遍历jQuery选择器对象,这样'$(this)'指的是当前节点。

$( function () {

    $('.hoverList').each(function(){
        $(this).dialog({
            autoOpen: false,
            hide: {
                effect: "fade",
                duration: 400
            },
            title: $(this).data("title"),
            modal: false
        });
    });
});