Javascript 单击TR时如何获取隐藏的TD值
我正在尝试制作一个基于web系统的任务管理器,它可以监控工作中的任务,我使用html和php。 我试图显示表中的所有任务,当我单击一个任务(行)时,我想获得一个隐藏的td值(任务id),并将其作为arg发送到另一个页面以获取有关该任务的更多信息。 我在网上搜索了怎么做,但我真的不知道如何使用我的桌子。 这是我的表格代码Javascript 单击TR时如何获取隐藏的TD值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正在尝试制作一个基于web系统的任务管理器,它可以监控工作中的任务,我使用html和php。 我试图显示表中的所有任务,当我单击一个任务(行)时,我想获得一个隐藏的td值(任务id),并将其作为arg发送到另一个页面以获取有关该任务的更多信息。 我在网上搜索了怎么做,但我真的不知道如何使用我的桌子。 这是我的表格代码 <table id="thickets_show"> <tr id="show_t
<table id="thickets_show">
<tr id="show_ticket_table_header">
<td>Work Week</td>
<td>Task Submited Date</td>
<td>Task Submited Time</td>
<td>Task</td>
<td>Project</td>
<td>Task Owner</td>
<td>Task Assigend to</td>
<td>Priority</td>
<td>Status</td>
<td>Task Total Work Time</td>
<td>Task Due Date</td>
<td>Task Finish Date</td>
<td>Team</td>
</tr>';
foreach ($tasks as $key => $value) {
if ($value['ticket_status']=="done")
echo '<tr id="done_ticket" >';
elseif ($value['ticket_priority']=="high")
echo '<tr id="high_ticket" class="ticket_raw">';
else
echo '<tr class="ticket_raw">';
echo '
<td>
'.$value['work_week'].'
</td>
<td>
'.$value['ticket_date'].'
</td>
<td>
'.$value['ticket_time_submit'].'
</td>
<td>
'.$value['ticket_request'].'
</td>
<td>
'.$value['ticket_project'].'
</td>
<td>
'.$value['ticket_onwer'].'
</td>
<td>
'.$value['ticket_assigned_user'].'
</td>
<td>
'.$value['ticket_priority'].'
</td>
<td>
'.$value['ticket_status'].'
</td>
<td>
'.$value['ticket_worktime'].'
</td>
<td>
'.$value['ticket_due_date'].'
</td>
<td>
'.$value['ticket_finish_date'].'
</td>
<td>
'.$value['team'].'
</td>
<td style="display:none;" id="ticket_id class="divOne">
'.$value['id'].'
</td>
</tr>
td
具有idticket\u id
,因此您可以使用document.getElementById()
:
var td=document.getElementById('ticket_id');
var值=td.textContent;
或者,使用jQuery:
var td=$(“#票证id”);
var value=td.text();
有一个小问题需要纠正,然后您可以轻松地完成这项工作:
echo'
无效-如果您在这样的循环中创建多个元素,您不能给它们所有相同的“id”,这在HTML规范中是非法的。您必须改用类
请按照以下方式稍微重写:
foreach ($tasks as $key => $value) {
echo '<tr data-id="'.$value['id'].'" class="ticket ';
if ($value['ticket_status']=="done")
echo 'done_ticket';
elseif ($value['ticket_priority']=="high")
echo 'high_ticket ticket_raw';
else
echo 'ticket_raw';
echo '">';
echo '
<td>
//etc...
最后,您可以删除此代码:
<td style="display:none;" id="ticket_id class="divOne">
'.$value['id'].'
</td>
$('tr')。在('click',function()上{
var hidden_items=$(this.find('.td_hidden');
$。每个(隐藏项,函数(k,v){
console.log($(v.text());
})
})
html,正文{
身高:100%;
保证金:0自动;
填充:0px;
}
运输署{
边框:1px纯黑;
}
专栏1
专栏2
第3栏
专栏4
价值01
价值02
价值03
价值04
值\u隐藏\u 01
值\u隐藏\u 02
价值11
价值12
价值13
价值14
值\u隐藏\u 11
值\u隐藏\u 12
$('tr td:hidden')
您缺少一个双引号:id=“ticket\u id class=”
。我试过了,它总是让我得到相同的值,因为您使用了id选择器,并且id在上下文中应该是唯一的是的,这是真的。我建议您使用ADyson建议的内容。@wafihsn没问题,很高兴它对您有所帮助。如果您不打算显示“td”,有什么意义?td的唯一目的是向表中添加内容。如果它永远不会显示,并且确实包含补充数据,那么它只是滥用了该元素的用途。而是在另一个元素上使用隐藏字段或数据属性。@ADyson你是wright,当我们只想保存一个属性的数据时,我们可以将“数据属性”属性添加到“tr”元素,但当我们想保存多个属性时,如何播放?使用多个数据属性。e、 g.“数据id”、“数据名称”等,任何需要的内容。
$(".ticket").click(function(event) {
var id = $(this).data("id"); //gets the data-id value from the clicked tr
window.location.href = "ticket.php?id=" + id; //example URL to redirect to, passing the ID from the tr
});
<td style="display:none;" id="ticket_id class="divOne">
'.$value['id'].'
</td>