2012-10-22 22 views
1

我沒有找到任何示例如何使用jQuery讀取不顯眼的數據。例如下面使用jQuery讀取不顯眼的數據

<a id="deleteFile" href="" data="123">Delete file</a> 

我想從元素中讀取data屬性。怎麼做?

回答

2

最好的辦法是隻得到如果使用新望jQuery庫版本(高於1.6我相信的),你也可以使用與jQuery的data() HTML5數據屬性的元素屬性

$('#deleteFile').attr('data'); 

。改變你的錨鏈接到類似

<a id="deleteFile" href="" data-fileid="123">Delete file</a> 

那麼你可以使用

$('#deleteFile').data('fileid'); 

不過,不要交替使用它們,僅使用一種方法,否則你以後可能會作爲jQuerys data()將只讀取的承擔問題數據屬性然後將它們存儲在內部緩存中。如果通過data()任何改變,它不會在實際的標籤屬性含義data()attr()將返回不同的結果之後

1

這是更好地定義數據更改的屬性是這樣的:

<a id="deleteFile" href="" data-id="123">Delete file</a> 

然後你可以閱讀它:

var id = $('#deleteFile').data('id'); 

在這種情況下使用attr這不是個好主意。

3

您應該使用data-*其中*是一個關鍵,你想使用:

<a id="deleteFile" href="" data-file-id="123">Delete file</a> 

,那麼你可以閱讀:

$('#deleteFile').data('fileId'); 

剎那間注意到屬性是從file-id轉化爲fileId這會自動發生,以符合規範。還應該注意的是,jquery會嘗試將一個值轉換爲它的JavaScript本地類型。意思是訪問的值將是一個javascript Number而不是s字符串。如果您有領先的0,並且因爲01將轉換爲1,這可能會有影響。如果您需要明確的值作爲一個字符串,然後使用attr

$('#deleteFile').attr('data-file-id'); 

你也應該注意,使用attr當你給全屬性名,是不是隻是在駝峯數據屬性名稱。