2012-08-28 54 views
1

我可以得到一些建議。你有更好的方法來做到這一點?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'); 
....... 

你有更好的方式來存儲這些參考?謝謝。

回答

5

HTML5 way of doing this與舊版瀏覽器向後兼容,並且在jQuery中有特定的支持,具有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類型,因此在上述情況下,它會自動將這些值轉換爲數字。