2014-07-19 170 views
1

我在創建html/jquery應用程序時無法在不使用全局變量的情況下傳遞值時遇到問題。快速的例子使用非標準屬性

1)裝載表一類如「playersTable」

2)安裝一個唯一的ID,如「25」

3)點擊表格行和產卵的一排將根據父級的類和ID執行操作的按鈕;如查詢playersTable WHERE行= 25等

的問題是,因爲我正在開發,我需要配合越來越多值到父元素(或已具有類和ID的任何元件)和我想避免將20件東西添加到課程中

我不知道在需要將更多數據附加到我的元素時該怎麼辦。我也使用了「value」屬性,但是後來我想知道所有的瀏覽器是否支持它,如果是不好的練習,等等,如果我開始創建自己的屬性,它甚至可以工作嗎?如

<div id = "2" class = "test" myAttr = "foo"></div> 

或者我一直在談這一切錯誤的方式嗎?

回答

3

不知道爲什麼需要附上所有的數據到DOM元素很難給出具體的建議。

首先,我會考慮使用data-屬性。

其次,如果您要動態附加數據,我會考慮使用jQuery的data()方法。

第三,我會考慮你實際需要什麼數據,以及什麼時候需要。

第四,也許最重要的是,ID屬性可能不是你想要設置的。

使用data-id元素並獲得該ID的方式;一個簡單的數字值不是一個有效的ID。除非你真的需要通過ID來引用DOM元素,爲什麼呢?通常你只需要查看(或下)附近的層次結構並找到父行等來提取單個值,如data("id")

+0

謝謝,這就是我一直在尋找的。然而,我遇到的一個問題是,我正在使用來自PHP的數據填充我的網頁。我將數據附加到Id和Class之類的東西上,因爲這是我看到將主鍵傳遞給html以供jQuery使用的唯一方式。 – user3822370

+0

附加數據服務器端以便在JavaScript中使用*完全是用於HTML中的用例數據屬性。請參閱https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes – pwdst

2

我建議您使用data- *屬性,使用純JavaScript element.getAttribute('data-some_attr_name')或jQuery element.data('some_attr_name')

瀏覽器支持:http://caniuse.com/dataset

jQuery的數據文檔:http://api.jquery.com/data/

+0

它看起來像我會疏遠IE10和低級用戶,但。部分支持意味着什麼? – user3822370

+0

@ user3822370數據屬性將與Internet Explorer的不推薦版本一起使用,而不是JavaScript數據集方法。如果你使用getAttribute或jQuery.attr()方法,這將工作得很好。 – pwdst

+0

謝謝。當你說JavaScript數據集方法時,你能更精確嗎? – user3822370

相關問題