Есть у нас табличка
<table id="example">
<tbody>
<tr id="rowID"
data-all='{"id": 1, "name": "name1"}'>
<td data-id="01">Tiger Nixon</td>
<td data-id="02">System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011/04/25</td>
<td>$320,800</td>
</tr>
</tbody>
</table>
И код
$("#example td").bind('click', function(){
var all = $('#rowID').data('all');
alert(all);
});
(JS Fiddle:
jsfiddle.net/57b1m5Lz )
Если написать
data-all='{"id": 1, "name": "name1"}'
Алерт возвращает [Object object]
А если написать
data-all='{"id": 01, "name": "name1"}'
Алерт возвращает '{"id": 01, "name": "name1"}'
Да, я знаю, что
01 скорее всего воспринимается как запись числа в восьмеричной с.с.
Но - кто и когда
так воспринимает данные? Движок javascript у браузера? JQuery?
И на каком этапе? Приведение типов? Парсинг кусочка `JSON`?
Эксперименты показывают, что если обернуть все ключи data-all в кавычки - Object object будет всегда (во всех проверенных случаях).
Спасибо!