2013-01-13 62 views
17

我可以創建div以下方式創建DIV與數據屬性

$('<div/>', { 
    "class" : 'draggable player' + player + ' unit unit' + unit 
}) 

而且我也找不到什麼其他的屬性我可以分配給它,我分配類的方法相同。特別是如果我可以分配dataattr

+0

...你試過了嗎? – JJJ

回答

28

按照jQuery()function documentation(的$()化名),你可以定義第二中的屬性,事件和方法參數。

所以,是的,你用attr()定義的任何東西都是公平的遊戲。這包括「數據 - 無論」屬性(可通過$elem.data('whatever')奇怪地訪問),但它們不會像$elem.data('name', 'value')(至少在您致電$elem.data('whatever') - 請參閱http://api.jquery.com/jQuery.data/#entry-longdesc-1)中定義的任何變量一樣保存到jQuery.data

所以澄清:

var $elem = jQuery('<div/>', { 'data-test': "Testing" }); 

將創建這個元素,並返回一個包含它的jQuery對象:

<div data-test="Testing"></div> 

從那裏,你將能夠做到:

jQuery.data($elem[0], 'test'); // => undefined 
$elem.data('test');   // => "Testing" 
jQuery.data($elem[0], 'test'); // => "Testing" 

當然,$elem.attr('data-test')也將工作。

+0

我想它比'elem'更像'elem'。說到PHP? ;) – Atmocreations

+2

使用'$'前綴JS變量是識別jQuery對象的常見做法。 –

+0

啊 - 很高興知道,謝謝。反正不應該是無禮的=) – Atmocreations

12

您可以指定任何屬性,你想:

$('<div/>', { 
    "class" : 'draggable player' + player + ' unit unit' + unit, 
    "data-info": 'Anything you want', 
    "even-non-validating-attributes": 'ANYTHING!!' 
}); 

這裏的小提琴:http://jsfiddle.net/vCaym/