目标:
通过按“info”链接从“tr”中的第一个“td”检索数据“aaa”。例如,如果从第一个“tr”按下“info”链接,我应该从第一个“tr”中检索数据“aaa”。
问题:
通过按下找到解决方案以检索数据“aaa”时遇到问题 使用javascript和jquery链接“info”。换句话说,怎么样 通过jquery和javascript检索数据
请记住,我还需要将值aaa转换为与业务逻辑相关的其他方法。
另一件事,列表中的行数可以每天更改。
<table border="1" SUMMARY="aaa" id="tblProjekt">
<thead>
<tr>
<th>Projekt name</th>
<th>Total time</th>
<th>Task</th>
<th>comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>aaa</td>
<td>aaa</td>
<td>aaa</td>
<td><a href='#' onclick='startPoint(); return false;'>info</a></td>
</tr>
<tr>
<td>bbb</td>
<td>bbb</td>
<td>bbb</td>
<td><a href='#' onclick='startPoint(); return false;'>info</a></td>
</tr>
<tr>
<td>bbb</td>
<td>bbb</td>
<td>bbb</td>
<td><a href='#' onclick='startPoint(); return false;'>info</a></td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
你的问题对我来说并不清楚,但是后面的小提琴达到了问题中指定的目标,即检索aaa
$("a:contains('info')").click(function(){
var v = $("#tblProjekt >tbody> tr:first>td").html();
alert(v);
});
修改强>
更新的html
$("a").click(function(){
var v = $(this).closest("tr").children(':first-child').text();
alert(v);
});
答案 1 :(得分:0)
我同意3nigma这个问题不明确。如果您希望链接显示在每一行并在单击后显示第一个单元格的内容,以下是解决方案(see jsfiddle):
jQuery('#tblProjekt').delegate('a.startPoint', 'click', function(event){
event.preventDefault();
var info = jQuery(this).parents('tr').find('td:first-child').html();
alert(info);
});
这将显示我刚刚描述的警告弹出窗口。它假设您的HTML应如下所示:
<table border="1" SUMMARY="aaa" id="tblProjekt">
<thead>
<tr>
<th>Projekt name</th>
<th>Total time</th>
<th>Task</th>
<th>comments</th>
<th>(link for more info)</th>
</tr>
</thead>
<tbody>
<tr>
<td>aaa1</td>
<td>aaa2</td>
<td>aaa3</td>
<td>aaa4</td>
<td><a href="#" class="startPoint">info</a></td>
</tr>
<tr>
<td>bbb1</td>
<td>bbb2</td>
<td>bbb3</td>
<td>bbb4</td>
<td><a href="#" class="startPoint">info</a></td>
</tr>
</tbody>
</table>
有帮助吗?这是你需要的吗?
聚苯乙烯。我从您的代码中删除了内联JavaScript。尽可能避免这种情况。
答案 2 :(得分:0)
是的,我也不清楚这个请求。但是我想你可能会想要这样的东西(开始你的路上......)
$('#oneColumnInfo').click(function(){
var oneColumnText = $('tbody tr td:first').text();
alert(oneColumnText);
return false;
});
$('#twoColumnInfo').click(function(){
var twoColumnText = $('tbody tr td:first').next().text();
alert(twoColumnText);
return false;
});
http://jsfiddle.net/jasongennaro/eaSMS/
顺便说一句,我删除了内联click events
。
<table border="1" SUMMARY="aaa" id="tblProjekt">
<thead>
<tr>
<th>Projekt name</th>
<th>Total time</th>
<th>Task</th>
<th>comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>aaa</td>
<td>abc</td>
<td>aaa</td>
<td>aaa</td>
</tr>
<tr>
<td>bbb</td>
<td>bbb</td>
<td>bbb</td>
<td>bbb</td>
</tr>
<tr>
<td><a href='#' id="oneColumnInfo">info</a></td>
<td><a href='#' id="twoColumnInfo">info</a></td>
<td><a href='#'>info</a></td>
<td><a href='#'>info</a></td>
</tr>
</tbody>
</table>
答案 3 :(得分:0)
鉴于问题中修改了html,我建议使用:
$('td a').click(
function(){
var projektName = $(this).closest('tr').find('td:first').text();
alert(projektName);
return false;
});
<小时/> 参考文献: