2011-09-13 50 views
0

我在訪問動態(ajax)加載文件的數據屬性時遇到了一些問題。訪問動態加載對象的'數據'屬性?

比如我可能會加載,有一個結果的文件:

<div id="blah" class="hello" data-something="or_other" /> 

然後做的jQuery:

var blah_id = $('#id').attr('id'), 
    blah_class = $('#blah').attr('class'), 
    blah_something = $('#blah').data('something'); 

我結束了:

blah_id === 'blah'; 
    blah_class === 'hello'; 
    blah_something === null; 

我知道html是好的,因爲如果我在做一個ajax調用之前把這個結果放在頁面上,我會得到我需要的一切。

對於我不明白的數據屬性有什麼特別之處嗎?

UPDATE 我注意到,動態加載的文件實際打印出來的數據屬性 - 即。 它在打印的html中是可見的。據我所知,它不應該在HTML中可見,並且當它在靜態加載的頁面上工作時,它在打印的HTML中是隱形

回答

2

這很奇怪,seems to work here。該方法.data()嘗試分析值,並將其轉換爲基礎類型:

例如:

<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div> 

$("div").data("role") === "page"; 
$("div").data("lastValue") === 43; 
$("div").data("hidden") === true; 
$("div").data("options").name === "John"; 
+0

這是奇怪。非常酷,雖然我不知道你可以對jsfiddle進行ajax測試:) – willdanceforfun

+1

@cosmicbdog,如果'data- *'屬性包含'-',你應該使用camelCase來查詢它。 –

+0

謝謝你。我把它保留了一個簡單的字符串,沒有任何下劃線或破折號。但我剛剛更新了這個問題,因爲動態加載的數據屬性在結果中可見時,我認爲它不應該。 – willdanceforfun