Jquery内联属性值

时间:2012-08-28 07:37:12

标签: javascript jquery

我能得到一些建议。你有更好的方法吗?

大多数情况下,当我在Html表中输入一组数据时,我总是将数据调整为 一些引用ID,如“student_id”,或“country_id”到父结构,如或,

例如

<tr student_id="1" subject_id="2" school_id="5" country_id="6">
 <td></td>
 <td></td>
 <td></td>
 <td></td>
  .....
  ......
</tr>
....
.....

<tr student_id="43" subject_id="35" school_id="22" country_id="411">
 <td></td>
 <td></td>
 <td></td>
 <td></td>
  .....
  ......
</tr>
....
.....

当我调用javascript函数时,我可以在函数中获取并获取这些id

var tr  = $(this).closest('tr');
var student_id =  $(this).attr('student_id');
var subject_id =  $(this).attr('subject_id');
var school_id =  $(this).attr('school_id');
.......

你有更好的方法存储这些参考?感谢。

1 个答案:

答案 0 :(得分:5)

与旧版浏览器向后兼容且在jQuery中具有特定支持的HTML5 way of doing this具有data-xxx属性。

<tr data-student_id="43" data-subject_id="35" data-school_id="22" data-country_id="411">

var tr  = $(this).closest('tr');
var student_id = tr.data('student_id');
var subject_id = tr.data('subject_id');
var school_id = tr.data('school_id');

在HTML5中以这种方式执行此操作的理由之一是将所有自定义数据属性放在"data-"命名空间中,保证永远不会与可能在任何HTML标记上定义的未来标准属性冲突。在jQuery中,它还将它与存储每个对象数据的.data()方法统一起来。

注意,当使用jQuery的.data(key)方法时,它还会尝试将数据转换为本机javascript类型,因此在上面的情况下,它会自动将这些值转换为数字。