我使用jQuery动态构建。因为稍后我需要捕获表单元格上的双击事件,并且我需要确切地知道(双击)了哪个行和列,所以我在每一行和每一列上设置了自己的属性,即:
<tr data-tr-number="2">
<td data-td-number="1">John</td>
<td data-td-number="2">Due</td>
<td data-td-number="3">U.S.A.</td>
</tr>
现在,当我稍后尝试获取这些属性的值(以及元素的html值)时,出现错误。我究竟做错了什么?
n
this.attr("data-td-number") ---> Uncaught TypeError: undefined is not a function
相同于:
this.html or this.closest("tr").attr("data-tr-number")
问题是this
指向HTMLTableCellElement对象,而不是jQuery实例对象。所以你不能attr
在上面使用方法。而是使用:
$(this).attr("data-td-number")
您可以轻松地进行验证:
console.log(this instanceof HTMLTableCellElement); // true
console.log($(this) instanceof jQuery); // true
您可以随时换纯HTML元素到jQuery的功能,构建了jQuery的新实例像所有必要的方法attr
,closest
等等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句