Атрибут пользовательской переменной объекта DOM jquery внутри него - PullRequest
0 голосов
/ 10 декабря 2011
jQuery('<div/>', {
    id: 'karta'+i,    
    znak: player1 
}).appendTo('#igrac1');

znak: player1 Во-первых, я пытался создать собственный атрибут внутри этого объекта, но это неправильно.Так возможно ли иметь собственный атрибут внутри объекта jquery?

Ответы [ 4 ]

3 голосов
/ 10 декабря 2011

Как уже говорили другие, при использовании jQuery гораздо безопаснее использовать .data() для хранения пользовательских данных в элементе. Вы можете сделать это компактно в вашем примере следующим образом:

jQuery('<div/>', {id: 'karta'+i,}).data("znak", player1).appendTo('#igrac1');

И затем, когда вы захотите сослаться на данные Znak, вы получите это с помощью:

var curPlayer = jQuery("#karta1").data("znak");

Вы можете увидеть, как это работает здесь: http://jsfiddle.net/jfriend00/fqaKg/

Если вы хотите установить несколько объектов данных для объекта, вы можете сделать это либо с помощью нескольких вызовов .data (), либо передав объект в .data ():

jQuery("#karta1").data("player", "Bob").data("age", 13);

или

jQuery("#karta1").data({player: "Bob", age: 13});

И их можно получить как:

var player = jQuery("#karta1").data("player");
var age = jQuery("#karta1").data("age");
2 голосов
/ 10 декабря 2011

Посмотрите на функцию jQuery.data(), возможно, вы сможете использовать ее в своем случае. Вот скрипка с примером, который я только что сделал: http://jsfiddle.net/dRtqQ/

Вот HTML:

<div id="igrac1"></div>

Вот Js:

jQuery('<div/>', {
    id: 'karta',    
    znak: 'hey'
}).appendTo('#igrac1');

var igracDiv= $("karta");

// store the information
jQuery.data(igracDiv, "test",{name:"Joe", age:12});

//then to read it (or put it in another variable)
alert(jQuery.data(igracDiv, "test").name);
0 голосов
/ 10 декабря 2011

Вы устанавливаете атрибут znak на значение player1. Другими словами, элемент будет выглядеть так:

<div id="kart1" znak="<!-- value of player` -->"></div>

Возможно, вы ищете $.data для хранения значения для элемента.

0 голосов
/ 10 декабря 2011

Если я понимаю, что вы пытаетесь сделать, вам нужно использовать attr:

http://jsfiddle.net/HGz7D/

var newDiv = jQuery('<div/>', {
    id: 'karta'
}).attr(znak,player1)

или вы можете сделать это:

var details = {
    id: 'karta'
};

details[znak] = player1;

var newDiv = jQuery('<div/>', details).appendTo('body');

Но, как указано в другом вопросе, data обычно является лучшей идеей, чем пользовательские атрибуты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...