我正在从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')
}
}
});
我确定我错过了一些简单的东西,但我无法让我的对话框显示出来......
答案 0 :(得分: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的元素($ 5之前的第5个兄弟) ).parent())。
哦,.parent没有任何选择器,只是抓住了第一个父级。如果你想找到第一个td父母,试试这个:
var gameno=$(this).parents('td:first').prevAll('td:eq(4)').html();
答案 1 :(得分:0)
为什么这一行:
var gameno=$(this).parent('td').prev("td").prev("td").prev("td").prev("td").prev("td").html();
转到要更改div
的{{1}},
使用html
或class
选择器?
你有提醒gameno吗?
它包含数字?