Jquery 从输入检索自定义属性无效

Jquery 从输入检索自定义属性无效,jquery,attributes,Jquery,Attributes,我在带有自定义属性的中有一个标记。 当我试图创建一个函数来检索该属性时,它不起作用。 有什么想法吗 <table> <tr> <td> <input row="ab01" id="ab01_01"> </td> </tr> </table> function retrieve_row(){ alert($(this).attr('row')); } 函数检索_行(){ 警

我在带有自定义属性的
中有一个
标记。 当我试图创建一个函数来检索该属性时,它不起作用。 有什么想法吗

<table>
  <tr>
    <td>
      <input row="ab01" id="ab01_01">
    </td>
  </tr>
</table>

function retrieve_row(){
alert($(this).attr('row'));
}

函数检索_行(){
警报($(this.attr('row'));
}
结果是
未定义
。为什么?有几件事:

您的
范围不正确,只需直接针对您的元素:

function retrieve_row(){
   alert($('#ab01_01').attr('row'));
}
另外,不要像现在这样自定义HTML属性。不过,不要担心,您可以使用HTML5
data-
属性来实现相同的目的:

  <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
   }
您可能希望向表中添加一个类或ID,以便此函数不会过于宽泛。

以下几点:

您的
范围不正确,只需直接针对您的元素:

function retrieve_row(){
   alert($('#ab01_01').attr('row'));
}
另外,不要像现在这样自定义HTML属性。不过,不要担心,您可以使用HTML5
data-
属性来实现相同的目的:

  <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
   }
您可能希望向表中添加一个类或ID,以便此函数不会过于宽泛。

以下几点:

您的
范围不正确,只需直接针对您的元素:

function retrieve_row(){
   alert($('#ab01_01').attr('row'));
}
另外,不要像现在这样自定义HTML属性。不过,不要担心,您可以使用HTML5
data-
属性来实现相同的目的:

  <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
   }
您可能希望向表中添加一个类或ID,以便此函数不会过于宽泛。

以下几点:

您的
范围不正确,只需直接针对您的元素:

function retrieve_row(){
   alert($('#ab01_01').attr('row'));
}
另外,不要像现在这样自定义HTML属性。不过,不要担心,您可以使用HTML5
data-
属性来实现相同的目的:

  <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
   }


您可能希望向表中添加一个类或ID,以便此函数不会过于宽泛。

因为什么是
$(this)
?试试
$(“#ab01_01”).attr('row')$(this)
?试试
$(“#ab01_01”).attr('row')$(this)
?试试
$(“#ab01_01”).attr('row')$(this)
?试试
$(“#ab01_01”).attr('row')我想你指的是属性,而不是元素?+1虽然使用数据属性,但应该使用而不是.attr(),这两方面都是正确的。很抱歉,清晨采血:)它正在工作,但是:1-如果我有多个输入标记,具有不同的id和不同的数据行属性,2-我创建了一个函数onclick来检索我单击的输入的数据行?您是否正在寻找一个单击处理程序来应用于每个输入,哪个会提醒您它的
数据行
值?我想您指的是属性,而不是元素?+1虽然使用数据属性,但您应该使用而不是.attr()。您在这两方面都是正确的。很抱歉,清晨采血:)它正在工作,但是:1-如果我有多个输入标记,具有不同的id和不同的数据行属性,2-我创建了一个函数onclick来检索我单击的输入的数据行?您是否正在寻找一个单击处理程序来应用于每个输入,哪个会提醒您它的
数据行
值?我想您指的是属性,而不是元素?+1虽然使用数据属性,但您应该使用而不是.attr()。您在这两方面都是正确的。很抱歉,清晨采血:)它正在工作,但是:1-如果我有多个输入标记,具有不同的id和不同的数据行属性,2-我创建了一个函数onclick来检索我单击的输入的数据行?您是否正在寻找一个单击处理程序来应用于每个输入,哪个会提醒您它的
数据行
值?我想您指的是属性,而不是元素?+1虽然使用数据属性,但您应该使用而不是.attr()。您在这两方面都是正确的。很抱歉,清晨采血:)它正在工作,但是:1-如果我有多个输入标记,具有不同的id和不同的数据行属性,2-我创建了一个函数onclick来检索我单击的输入的数据行?您是否正在寻找一个单击处理程序来应用于每个输入,哪个将提醒您其
数据行
值?