1

我目前正在从 mysql 数据库加载数据 - 如果满足某个条件,则会显示一个志愿者按钮。单击按钮时,我想显示一个对话框,并调用一个 php 文件来填充该框。首先我初始化对话框:

$(document).ready(function() {
    $("#chaincrewDialog").dialog({ autoOpen: false });
});

这是我调用对话框的方式:

    $('.volunteer').live("click", function(){
            // this gets the game number from the table to pass to the php file
            var gameno=$(this).parent('td').prev("td").prev("td").prev("td").prev("td").prev("td").html();
           $('#chaincrewDialog').dialog('open').load("popup.php?gameno="+gameno);
});

我的点击按钮工作正常,并且没有 js 或 firebug 错误消息。使用以下参数调用我的对话框:

 $(function() {
  $('#chaincrewDialog').dialog({
            resizable: true,

    autoOpen:   false,
    resizable:  false,
    modal:      true,
            dialogClass: 'flora',
            title: 'Volunteer',
            overlay: {
        opacity: 0.5,
        background: "#A8A8A8"
    },
    height: 600,
    width: 700,
            buttons: {
                    'Close': function() {
                    $(this).dialog('remove')
                    }
            }
});

我确定我错过了一些简单的东西,但我什至无法显示我的对话框......

4

2 回答 2

1

haim evgi 的意思是你为什么要做所有 prev().prev()....

var gameno=$(this).parent('td').prev("td").prev("td").prev("td").prev("td").prev("td").html();

你应该能够做到:

var gameno=$(this).parent().prevAll('td:eq(4)').html();

Prevall 说抓取所有先前的兄弟姐妹并使用 ('td:eq(4)') 过滤它们,:eq(4) 说获取零索引为 4 的元素($(this).parent 之前的第 5 个兄弟姐妹())。

哦, .parent 没有任何选择器,它只是抓取第一个父级。如果你想找到第一个 td 父母试试这个:

var gameno=$(this).parents('td:first').prevAll('td:eq(4)').html();
于 2009-06-08T19:57:19.127 回答
0

为什么这行:

var gameno=$(this).parent('td').prev("td").prev("td").prev("td").prev("td").prev("td").html();

到达div您要更改的html, withclassidselector ?你警告过gameno吗?它包含数字?

于 2009-06-07T15:14:20.860 回答