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

标签 javascript jquery html

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

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

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

我知道该行已附加并且具有文本值。 我的问题是通过单击按钮来获取它。

我尝试了很多选择,比如

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

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

在其中一次迭代中,我设法获取了行内容,但那是在我处理整个表并仅获取所有 idRow 行时。

求助! 谢谢!

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

编辑: 对于每个想知道我做了什么的人- 我无法让“最接近”或“prev”工作,所以我在按钮行之后附加了 idRow(这样 idRow 总是在按钮下方)并使用了-

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

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

最佳答案

标识符 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>


如果你有像 idRow1idRow2 这样的唯一 ID ...你可以使用以符号 ^ 开头的属性选择器:

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

$('body').on('click', '.comnowBtn', function(){
    alert( $(this).closest('tr').prev("tr[id^='idRow']").text() );
})
<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>

关于javascript - 单击表格中的按钮后从上一行获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35107832/

相关文章:

没有回调的 JavaScript 原生 Promise()

javascript - Input::all() 在 FormData 对象通过后为空

javascript - 如何动态更改 href 属性

javascript - Scriptaculous Builder 未在 FireFox 中设置选定值

javascript - 扩展 HTMLElement

HTML 视频不使用 Vue.js 2 播放

php - 想要在页面加载期间显示 "loading"图像 - Javascript

javascript - 是否可以在不使用html5的情况下在IE8和其他主流浏览器中实现模糊效果和运动模糊效果?

JavaScript HTML : Image with hover function disappears

javascript - 如何将模型值绑定(bind)到kendo.ui.Slider?