我创建了html和javascript以获取包含不同信息的行的id,例如,我将在下面创建一个表。
id
1--琼恩
2--简
当我单击行时,我希望选择该行id。我有以下代码
alert(document.getElementById("id").value);
alert($(this).getElementbyId("id").value);//this line doesnt work第一行将始终显示为1。或第一个字段中的id。第二行什么都不做。任何帮助都将不胜感激。
谢谢
输出的一些HTML
<table border=1 style="border-collapse: collapse">
<tr class='clickablerow'>
<td><textarea readonly cols='4' rows='1' id='id'>356</textarea></td>
<td><textarea cols='20' rows='1' name='lastname'>Johnson</textarea></td>
<td><textarea cols='20' rows='1' name='firstname'>Jon</textarea></td>
<td><textarea cols='5' rows='1' name='room'>58B</textarea></td>
<td><textarea cols='20' rows='1' name='product'>HP printer</textarea></td>
<td><textarea cols='20' rows='1' name='problem'>lid is missing a part</textarea></td>
<td><textarea cols='20' rows='1' name='finished'>5/16/2013</textarea></td>
<td><textarea cols='20' rows='1' name='comments'>Fixed working now</textarea></td>
</tr>
<tr class='clickablerow'><td><textarea readonly cols='4' rows='1' id='id'>429</textarea></td>
<td><textarea cols='20' rows='1' name='lastname'>Harrison</textarea></td>
<td><textarea cols='20' rows='1' name='firstname'>Wendy</textarea></td>
<td><textarea cols='5' rows='1' name='room'>101</textarea></td>
<td><textarea cols='20' rows='1' name='product'>Internet</textarea></td>
<td><textarea cols='20' rows='1' name='problem'>Internet not working</textarea></td>
<td><textarea cols='20' rows='1' name='finished'>5/24/2013</textarea></td>
<td><textarea cols='20' rows='1' name='comments'>Need to change DNS</textarea></td>
</tr>发布于 2013-12-21 00:11:26
将表行更改为如下所示:
<tr class='clickablerow'><td><textarea readonly cols='4' rows='1' class='id'>".$row['id']."</textarea></td>...</tr>使用class="id"而不是id="id",因为您不能重复ID。
那么您的JS代码可以是:
$("tr.clickablerow").click(function() {
alert ($(this).find("textarea.id").val());
});$(this).getElementById("id").value无法工作,因为$(this)返回一个jQuery对象,而不是DOM元素。jQuery对象不实现与DOM元素相同的方法。
发布于 2013-12-21 00:16:12
我不确定使用jQuery是否是一种选择--但是写得非常快:
$("tr").click(function() {
var currentID = $(this).attr("id");
alert(currentID);
});说明:$("tr").click() -将单击事件绑定到页面上的每个<tr>元素(如果不希望将每个tr元素绑定到此事件,则可以向希望触发的元素添加类名并使用$("tr.myClassName").click() )
$(this).attr("id") -$(这个)是指单击的元素。.attr( "id“)获取tr的属性值(在本例中是html元素的”id“)。
希望这能有所帮助。
更新:
我发现我对这个问题还没有很清楚的理解--谢谢你提请我注意--以下是修正的样本:
$("tr").click(function() {
var currentID = $("td textarea", this).val();
alert(currentID);
});https://stackoverflow.com/questions/20713826
复制相似问题