jQuery:获取clicked元素的值

BAD*_*EED 1 jquery

我有这段代码:

<tr class="editField">
  <td>abc</td>
  <td>123</td>
  </td>
</tr>
<tr class="editField">
  <td>dfg</td>
  <td>456</td>
  </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

然后我有这个javascript用jQuery打开一个对话框:

$( ".editField" ).click(function() {
        alert(...); // should get me 123
});
Run Code Online (Sandbox Code Playgroud)

假设我先点击tr然后我会得到第二个内容td(即123),我该怎么写?

Dav*_*mas 11

鉴于你目前的加价,我建议:

$( ".editField" ).click(function() {
        alert($(this).find('td:eq(1)').text());
});
Run Code Online (Sandbox Code Playgroud)

但是,虽然这在给定的示例中起作用,但是为要从中恢复"值"的元素添加一些定义属性会更容易(并且随后更加可靠),例如class-name'值',给出像这样的HTML:

<tr class="editField">
  <td>abc</td>
  <td class="value">123</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

和jQuery:

$( ".editField" ).click(function() {
        alert($(this).find('td.value').text());
});
Run Code Online (Sandbox Code Playgroud)

或者,当然,如果'value'将始终是任何给定行(相关类)的最后一个 td元素,那么您可以改为使用:

$( ".editField" ).click(function() {
        alert($(this).find('td:last').text());
});
Run Code Online (Sandbox Code Playgroud)

顺便提一下,请注意您的HTML格式不正确,您</td>在示例代码的两行中的最后一个单元格之后有剩余.

参考文献:

  • 哦,我确定你能够参加比赛!也许是太过于侠义和高尚的态度,虽然屈服于如此小的水平...... =)另外,我可以说谢谢你的语法整洁吗?非常感激! (3认同)