As others have said, when using jQuery, it's much safer to use .data() to store custom data on an element. You can do that compactly in your example like this:
jQuery('<div/>', {id: 'karta'+i,}).data("znak", player1).appendTo('#igrac1');
And, then when you want to reference the znak data, you get it with this:
var curPlayer = jQuery("#karta1").data("znak");
You can see it work here: http://jsfiddle.net/jfriend00/fqaKg/
If you want to set multiple data items on an object, you can do it either with multiple .data() calls or by passing an object to .data():
jQuery("#karta1").data("player", "Bob").data("age", 13);
or
jQuery("#karta1").data({player: "Bob", age: 13});
And, those can then be retrieved as:
var player = jQuery("#karta1").data("player");
var age = jQuery("#karta1").data("age");