jQuery:获取clicked元素的值

时间:2012-08-29 22:31:46

标签: jquery

我有这段代码:

<tr class="editField">
  <td>abc</td>
  <td>123</td>
  </td>
</tr>
<tr class="editField">
  <td>dfg</td>
  <td>456</td>
  </td>
</tr>

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

$( ".editField" ).click(function() {
        alert(...); // should get me 123
});

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

4 个答案:

答案 0 :(得分:10)

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

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

但是,虽然这在给定的示例中起作用,但是将一些定义属性添加到您希望从中恢复“值”的元素(例如类 - )会更容易(并且随后更可靠)名称'value',给出如下的HTML:

<tr class="editField">
  <td>abc</td>
  <td class="value">123</td>
</tr>

和jQuery:

$( ".editField" ).click(function() {
        alert($(this).find('td.value').text());
});

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

$( ".editField" ).click(function() {
        alert($(this).find('td:last').text());
});

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

参考文献:

答案 1 :(得分:1)

试试这个:

$( ".editField" ).click(function() {

    var clickedValue = $(this).find('td:first').next().text();

alert(clickedValue );    

});

小提琴链接:http://jsfiddle.net/9cRRj/8/

答案 2 :(得分:0)

$(document).bind("click", function (e) {
    $(e.target).closest("li").toggleClass("highlight");
    alert($(event.target).text());
});

这将直接为您提供所选的元素ID。 $(event.target)的.text(); 将在一秒钟内为您提供所选的元素文本。

答案 3 :(得分:0)

  $(function () {
        $(".Cartbtn").click(function () {
            var temp = {
                "Id": $(this).data("itemid"),
                "Name": $(this).data("itemname"),
                "Price": $(this).data("itemprice"),
                "Quantity": $(this).data("itemqty"),
                "ImageUrl": $(this).data("itemimgurl"),
            });