使用数据属性创建div

时间:2013-01-13 07:29:36

标签: javascript jquery

我正在以下列方式创建div

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

我无法找到我可以分配给它的其他属性,就像我分配类一样。特别是如果我可以分配dataattr

2 个答案:

答案 0 :(得分:34)

根据jQuery()function documentation $()的别名),您可以在第二个参数中定义属性,事件和方法。

所以,是的,使用attr()定义的任何内容都是合理的游戏。这包括“数据 - 无论什么”属性(可通过$elem.data('whatever')奇怪地访问),但它们不会像jQuery.data那样保存到$elem.data('name', 'value')。 (至少在致电$elem.data('whatever')之前 - 请参阅http://api.jquery.com/jQuery.data/#entry-longdesc-1)。

所以澄清一下:

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')也可以。

答案 1 :(得分:12)

您可以指定所需的任何属性:

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

这是小提琴:http://jsfiddle.net/vCaym/