2011-11-04 56 views
1

我創建了一個插件,我喜歡在我的HTML元素中添加一些額外的屬性。我知道如果我創建自己的自定義屬性,HTML文檔將無效,但這不是問題。我只是想知道,在這種情況下,使用jQuery訪問該屬性將是可行的嗎?HTML,自定義元素屬性,將適用於所有瀏覽器?

即:

<div id="c" my-custom-attr="myValue" data-my-custom-attr="another-value"> 
    Content here 
</div> 

<script type="text/javascript"> 
    $att1 = $('#c').attr('my-custom-attr'); 
    $att2 = $('#c').attr('data-my-custom-attr'); 
</script> 

將創建任何瀏覽器上面的代碼的任何問題嗎? :?

+0

您使用'.data('my-custom-attr')'爲第二個... –

+0

看看這裏接受的答案http://stackoverflow.com/questions/4145636/jquery-custom-屬性 – dSquared

+0

問題不在於如何。我知道如何使用這些數據。我喜歡做的是總是從HTML上下文中分離JavaScript。這意味着我無法將變量傳遞到來自PHP執行的JavaScript中。 –

回答

3

雖然沒有人能說它會在全部瀏覽器;你的代碼不應該在主要的現代瀏覽器中引起任何問題。我建議使用data-*HTML5命名約定,正如你在第二個例子中所做的那樣。

作爲一個側面說明;在你的第二個例子中,你可以通過兩種方式使用jQuery 1.4.3+訪問屬性:

<div id="c" data-my-custom-attr="another-value"> 
    Content here 
</div> 

<script type="text/javascript"> 
    // Both produce the same output // 
    console.log($('#c').attr('data-my-custom-attr')); 
    console.log($('#c').data('my-custom-attr')); 
</script> 

我希望它有幫助!

2

看看jQuery的data方法。您可以根據使用它的元素存儲屬性。 http://api.jquery.com/data/

+0

這是存儲數據的好方法,但我喜歡用JavaScript分離我的HTML。 Waht我的意思是,我喜歡將JavaScript寫入文件中,而不是將一些Javascript導入到HTML上下文中,並將一些JavaScript導入* .js文件 –

+0

您是否看過jQuery的插件創作文章? http://docs.jquery.com/Plugins/Authoring – Chris

+0

克里斯,問題不在於如何使用jQuery。我做了什麼,我在PHP中有一些變量,然後打印出HTML,我必須將一些變量傳遞給jQuery,而這些變量又是特定於多個div元素的。此外,jQuery不在HTML頁面中,是外部的,我需要允許jQuery從HTML中讀取這些變量。我怎樣才能做到這一點 ? –

相關問題