2

所以我喜欢页面上的用户列表。每个用户名都是可点击的,它会在对话框中显示用户信息。现在我正在使用列表的静态长度。我希望 jquery 查看用户列表有多大并将代码应用于列表。

在此处查看代码:

$(function() {
    var options = {
            autoOpen: false,
            width: 'auto',
            modal: true
    };
    $([1, 2, 3, 4]).each(function() {
            var num = this;
            var dlg = $('#dialog-player-' + num).dialog(options);
            $('#player-link-' + num).click(function() {
                    dlg.dialog("open");
                    return false;
            });
    });

});

我查看了文档的这一页: 我尝试的每一个都是选择容器“div#parent”中的所有 div。像这样:

$(function() {
    var options = {
            autoOpen: false,
            width: 'auto',
            modal: true
    };
    $("div#parent div").each(function() {
            var num = this;
            var dlg = $('#dialog-player-' + num).dialog(options);
            $('#player-link-' + num).click(function() {
                    dlg.dialog("open");
                    return false;
            });
    });

});

但这没有用。任何人都知道任何其他方式来做到这一点?

4

3 回答 3

2

我注意到您的代码中有一个错误并为您修复了它:

$(function() {
    var options = {
            autoOpen: false,
            width: 'auto',
            modal: true
    };
    var num = 1;
    $("div#parent div").each(function() {
            var dlg = $('#dialog-player-' + num).dialog(options);
            $('#player-link-' + num).click(function() {
                    dlg.dialog("open");
                    return false;
            });
            num = num + 1;
    });
});
于 2009-08-18T11:16:56.900 回答
1
$(function() {
    var options = {
            autoOpen: false,
            width: 'auto',
            modal: true
    };
    $(['George', 'Ralph', 'Carmine', 'Suzy']).each(function(index, val) {
            var num = index;
            var dlg = $('#dialog-player-' + num).dialog(options);
            $('#player-link-' + num).click(function() {
                    dlg.dialog("open");
                    return false;
            });
    });
});

你第一次有正确的想法。只需使用每个函数提供的索引。无需单独的柜台。

于 2011-01-14T18:33:02.310 回答
0

在文档中查找 'children' - 我认为您可能需要使用 each 而不是您所做的来循环遍历元素的子级。例如

$("div#parent").children('div').each(function(){etc...})

于 2009-08-17T10:32:52.917 回答