Php jquery单击tr id不会产生预期结果
我有一个php数组:Php jquery单击tr id不会产生预期结果,php,jquery,Php,Jquery,我有一个php数组: $users = array('Bob' => 'User',"Tom Smith'=>'Owner','Jack Mason' =>'User'); 我正在创建这些用户的表: <table align='center' width='100%' name='summary' id='summary'> foreach ($users as $key => $value) { echo "<tr><a hr
$users = array('Bob' => 'User',"Tom Smith'=>'Owner','Jack Mason' =>'User');
我正在创建这些用户的表:
<table align='center' width='100%' name='summary' id='summary'>
foreach ($users as $key => $value)
{
echo "<tr><a href='#' id='" . $key . "' class='getDetail'>
<th>" . $key . "</th>
.....etc
}
我希望警报显示数组的键。$key肯定设置好了,因为我在“th”字段中看到它
当我单击表中的任何一行时,我的警报窗口中会显示“未定义”。我的头撞在墙上,想知道为什么……将循环更改为有效的HTML,事件处理程序应该可以工作
<table align='center' width='100%' name='summary' id='summary'>
foreach ($users as $key => $value) {
echo "<tr id='".$key."' class='getDetail'><th>".$key."</th>";
}
foreach($key=>$value的用户){
回显“$key.”;
}
试试:
但是您的HTML是不正确的,我认为您应该在TH标记内放置一个标记。选项2有效,选项1无效。出于好奇,想知道为什么吗?试试
$(this)。find('a')。prop('id')
,应该是同一件事,而且这似乎是获得它的方法。请注意,锚点不是TR@bart2puck-只是做了个快速测试,在Chrome中,锚被移出表外,因为它试图修复错误,锚位于不应该出现的位置。您不需要锚定就可以使用javascript,您可以单击任何内容。@adeneo请阅读id
是一个属性,因此不能通过prop()
返回。在本例中,正确的函数是attr()
。回调中的此
引用了
元素,这非常有意义,因为侦听器连接到该元素。id
属性otoh在
标记中设置,因此您需要首先找到该元素($(this).find(“a”).attr(“id”);
)。
<table align='center' width='100%' name='summary' id='summary'>
foreach ($users as $key => $value) {
echo "<tr id='".$key."' class='getDetail'><th>".$key."</th>";
}
$('#summary tr a').click(function() {
alert($(this).attr('id'));
});