单击表格中的按钮后从上一行获取文本

时间:2016-01-30 22:14:46

标签: javascript jquery html

我已经看到很多类似问题的答案,但没有一个有效,我不知道该怎么办。

我有一个动态附加行的表。 有些行有class="idRow"

我需要在单击几行向下的按钮后获取该行的文本值(每次不同的位置但总是低于idRow,按钮每次都位于不同的行中,当我点击一个按钮时,我不知道我需要哪一行,只是最靠近它的那个按钮

我知道该行已追加并具有文本值。 我的问题是通过点击按钮获得它。

我尝试了很多选项,比如

 alert($(".comnowBtn").parent().closest('tr').prev("#idRow").text());

我尝试添加"parent()",删除它,prevclosest$("this")而不是$(".comnowBtn"),它们都是空的。

在其中一次迭代中,我设法得到了行内容,但是当我对整个表进行处理并且只获得了所有idRow行时。

请帮忙! 谢谢!

*我第一次没有很好地解释自己,我编辑了这个问题。 谢谢!

编辑: 对于每个人都在想我做了什么 - 我无法得到“最接近”的“上一个”工作,所以我在按钮行之后添加了idRow(以便idRow始终位于按钮下方)并使用 -

alert(   $(this).parents("tr").next(".idRow").text());

它有效,但它是一个解决方法......所以如果有人知道为什么“最接近”或“上一个”不起作用,我会很高兴听到它。 谢谢!

1 个答案:

答案 0 :(得分:1)

标识符id在同一文档中应该是唯一的,因此请尝试用普通类替换所有重复的ID,请查看示例。

希望这有帮助。



$('body').on('click', '.comnowBtn', function(){
    alert( $(this).closest('tr').prev('.idRow').text() );
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border=1>
  <tr class='idRow'><td>idRow row text 1</td></tr>
  <tr><td><button class='comnowBtn'>comnowBtn 1</button></td></tr>
  <tr class='idRow'><td>idRow row text 2</td></tr>
  <tr><td><button class='comnowBtn'>comnowBtn 2</button></td></tr>
</table>
&#13;
&#13;
&#13;

如果您有idRow1idRow2这样的唯一标识符......您可以使用属性选择器和符号^

$(this).closest('tr').prev("tr[id^='idRow']").text();

&#13;
&#13;
$('body').on('click', '.comnowBtn', function(){
    alert( $(this).closest('tr').prev("tr[id^='idRow']").text() );
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border=1>
  <tr id='idRow2'><td>idRow row text 1</td></tr>
  <tr><td><button class='comnowBtn'>comnowBtn 1</button></td></tr>
  <tr><td>Some extra rows</td></tr>
  <tr><td>Some extra rows</td></tr>
  <tr id='idRow2'><td>idRow row text 2</td></tr>
  <tr><td><button class='comnowBtn'>comnowBtn 2</button></td></tr>
</table>
&#13;
&#13;
&#13;