2013-01-13 18 views
17

sto creando div seguente modoCreare div con gli attributi dei dati

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

E non riesco a trovare quali altre proprietà posso assegnare allo stesso modo assegno di classe. soprattutto se posso assegnare data o attr?

+0

... hai provato? – JJJ

risposta

28

Secondo il jQuery()function documentation (alias $()), è possibile definire gli attributi, eventi e metodi all'interno di quel secondo parametro.

Quindi sì, tutto ciò che definiresti utilizzando attr() è un gioco equo. Che include “data-qualunque” attributi (che sono stranamente accessibili tramite $elem.data('whatever')), tuttavia essi non verrà salvato jQuery.data come qualsiasi variabili definite tramite $elem.data('name', 'value') (almeno fino a quando si chiama $elem.data('whatever') - vedi http://api.jquery.com/jQuery.data/#entry-longdesc-1).

Quindi, per chiarire:

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

creerà questo elemento, e restituire un oggetto jQuery che lo contiene:

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

Da lì, si sarà in grado di fare:

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

Ovviamente, anche il $elem.attr('data-test') funzionerà.

+0

Suppongo che sia piuttosto "elem" di "$ elem". Parlando di PHP? ;) – Atmocreations

+2

La prefissazione delle variabili JS con '$' è una pratica piuttosto comune per identificare oggetti jQuery. –

+0

ah - bello sapere, grazie. Non dovrebbe essere stato comunque offensivo =) – Atmocreations

12

È possibile assegnare tutti gli attributi che si desidera:

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

Ecco il violino: http://jsfiddle.net/vCaym/

Problemi correlati