Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Где хранить id (https://javascript.ru/forum/jquery/35698-gde-khranit-id.html)

ksa 21.02.2013 11:58

Цитата:

Сообщение от Shitbox2
Т.е.
<div data-id="9"></div>
$('div').data('id')
вернет 9, хотя обратная запись работать не будет. Дата-атрибуты можно использовать как значения по-умолчанию, больше плюсов в них не насмотрел...

Как плюс можно еще записать невозможность его изменить ;)

рони 21.02.2013 12:16

Цитата:

Сообщение от Shitbox2
хотя обратная запись работать не будет

Цитата:

Сообщение от ksa
невозможность его изменить

немного непонял чего нельзя изменить?
<!DOCTYPE HTML>

<html>

<head>
  <title></title>
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
<div data-id="9"></div>
<script type="text/javascript">
var id = $('div').data('id');
alert(id);
$('div').data('id', 10)
id = $('div').data('id');
alert(id);
</script>

</body>

</html>

ksa 21.02.2013 13:54

Цитата:

Сообщение от рони
чего нельзя изменить?

Выше писали
Цитата:

Сообщение от Shitbox2
Т.е.
<div data-id="9"></div>
$('div').data('id')
вернет 9, хотя обратная запись работать не будет

Основываясь на этом я и писал... :(

danik.js 21.02.2013 14:33

рони, ты не понял. ('div').data('id', 'xxx') не меняет значение атрибута data-id

рони 21.02.2013 15:16

danik.js,
ок

ksa 21.02.2013 15:21

Цитата:

Сообщение от danik.js
('div').data('id', 'xxx')
не меняет значение атрибута data-id

Почему тогда в его примере алерты с разными значениями?

рони 21.02.2013 15:24

Цитата:

Сообщение от ksa
Почему тогда в его примере алерты с разными значениями?

<!DOCTYPE HTML>

<html>

<head>
  <title></title>
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
<div data-id="9"></div>
<script type="text/javascript">
var id = $('div').data('id');
alert(id);
$('div').data('id', 10)
id = $('div').data('id');
alert(id);
$('div').wrap("<div></div>");
alert($('div').html());
</script>

</body>

</html>

ksa 21.02.2013 15:26

рони, так я и не понял почему второй алерт показал 10... :(

рони 21.02.2013 15:34

ksa,
видимо потому что дата работает свойством обьекта когда он есть/был проинициализирован data('id', 'xxx') а не с атрибутом.

ksa 21.02.2013 15:37

Цитата:

Сообщение от рони
видимо потому что дата работает свойством обьекта когда он есть/был проинициализирован data('id', 'xxx') а не с атрибутом.

Это фигово...
А я уш было обрадовался такому методу... Непонятки получаются. Вроде как значение атрибута осталось (что мне и нужно), а взять то значение - банан!


Часовой пояс GMT +3, время: 06:47.