Jquery 如何获取html标记';s属性值,在javascript中使用类名

Jquery 如何获取html标记';s属性值,在javascript中使用类名,jquery,jquery-jtable,Jquery,Jquery Jtable,我有10个“tr”标签,如下所示: <tr class="jtable-data-row jtable-row-even" data-record-key="13"> <td class="jtable-selecting-column"> <input type="checkbox"> <label for=""> <span></span> </label> </td> </tr>

我有10个“tr”标签,如下所示:

<tr class="jtable-data-row jtable-row-even" data-record-key="13">
<td class="jtable-selecting-column">
<input type="checkbox">
<label for="">
<span></span>
</label>
</td>
</tr>

<tr class="jtable-data-row" data-record-key="11">
<td class="jtable-selecting-column">
<input type="checkbox">
<label for="">
<span></span>
</label>
</td>
</tr>

如果勾选了“数据记录键”复选框,如何获取其值?我应该使用哪个类或ID名称


我必须说,我无法更改html代码。

假设您正在响应复选框上的事件,
事件处理程序中的此
将引用与事件相关的复选框。因此,在事件处理程序中:

var key = $(this).closest('tr').attr('data-record-key');
  • -事件相关的复选框元素

  • $(…)
    -将其包装在jQuery实例中

  • .closest('tr')
    -查找其最近的祖先,即
    tr

  • .attr('data-record-key')
    -从中获取
    数据记录键
    属性

或者,您可以使用
最接近('[data record key]')
来查找具有该属性的最近祖先,而不是
最接近('[data record key]')


或者,如果您试图为选中的每个复选框查找键,您可以这样查询:

var checkedRecordKeys = $("[data-record-key] input[type=checkbox]").map(function() {
    return this.checked
               ? $(this).closest("[data-record-key]").attr("data-record-key")
               : undefined;
}).get();

checkedRecordKeys
将是带有复选框的行的所有
数据记录键的值的数组。

只需添加一个替代项-您也可以使用
data()
获得数据属性值,如下所示:

$("input").on("click", function () {
 var dVal = $(this).closest("tr").data("recordKey");
 alert(dVal);
});
对于

小提琴:

jQuery数据的参考:

为了访问数据值,数据属性的名称将去掉“data-”和连字符(如果有);连字符后的第一个字符是大小写,因此
数据记录键
作为
记录键
访问