2016-08-17 1 views
0

ПриветствиеДобавить ассоциативный массив в объект jQuery как атрибут

Как добавить ассоциативный массив в объект jquery?

примеры:

<div id = "element"></div> 

$('#element').attr('_mynumber', 10); 
console.log($('#element').attr('_mynumber'); // OK, _mynumber = 10 

$('#element').attr('_myarray', [1,2,3,9,8,7]); 
console.log($('#element').attr('_myarray'); // OK, _myarray = 1,2,3,9,8,7 

$('#element').attr('_myassoc', {val1: 10, val2: [1,2,3,9,8,7]}); 
console.log($('#element').attr('_myassoc'); // FAIL, _mynumber = [object Object] (only as string), _mynumber.val1 = undefined 
+0

* "Все!" *, ​​Что тон не очень приветствуется здесь. Но я думаю, вы можете использовать '$ e.data()' –

ответ

1

Используйте data для хранения дополнительной информации на элементе вместо attr.

$('#element').data('_myassoc', {val1: 10, val2: [1,2,3,9,8,7]}); 
 
console.log($('#element').data('_myassoc'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="element"></div>

+0

большое спасибо! Я только что придумал этот метод. Но этот метод очень эффективен для частого использования? – Zhihar

+0

Это зависит от того, что вы подразумеваете под * частым *. 'data' - это в основном« getter »и« setter »на объекте. Это будет быстрее, если вы создадите что-нибудь по своему усмотрению, но это не так, потому что это довольно просто. @Zhihar – eisbehr

+0

частота: 5-10 раз в секунду – Zhihar

Смежные вопросы