我在 a中有一个带有自定义属性的<input>
标签。<table>
当我尝试创建一个函数来检索该属性时,它不起作用。有任何想法吗?
<table>
<tr>
<td>
<input row="ab01" id="ab01_01">
</td>
</tr>
</table>
function retrieve_row(){
alert($(this).attr('row'));
}
结果是undefined
。为什么?
我在 a中有一个带有自定义属性的<input>
标签。<table>
当我尝试创建一个函数来检索该属性时,它不起作用。有任何想法吗?
<table>
<tr>
<td>
<input row="ab01" id="ab01_01">
</td>
</tr>
</table>
function retrieve_row(){
alert($(this).attr('row'));
}
结果是undefined
。为什么?
几件事:
您this
的范围不正确,只需直接针对您的元素:
function retrieve_row(){
alert($('#ab01_01').attr('row'));
}
另外,不要像你一样制作自定义 HTML 属性。不过不用担心,您可以使用 HTML5data-
属性来达到同样的目的:
<input row="ab01" id="ab01_01"> //INVALID
<input data-row="ab01" id="ab01_01"> //VALID
function retrieve_row(){
alert($('#ab01_01').attr('data-row')); //The un-hip way
alert($('#ab01_01').data('row')); //Like the cool kids are doing
}
来自 jQuery 的 pappy:http ://ejohn.org/blog/html-5-data-attributes/
根据OP的评论,我相信他正在寻找这个:
$("table").on( "click", "input", function() {
alert($(this).data('row'));
});
您可能希望向您的表中添加一个类或 ID,以便此功能不会过于宽泛。