2011-03-15 2 views
1

У нас есть ссылки внутри блока:Используйте идентификатор в качестве имени Массив в (JQuery)

<div> 
    <a href="#" id="james">text</a> 
    <a href="#" id="katy">text</a> 
    <a href="#" id="julia">text</a> 
</div> 

IdS по различным ссылкам никогда не повторяются.

Попытка создать отдельный массив в javascript для каждой ссылки этого блока. Проблема в том, что каждый раз изменяются, я должен делать это на лету.

Мы должны получить это:

var james = []; 
var katy = []; 
var julia = []; 

идентификатор Линка = имя нового массива.

1) Как закодировать это?

2) Как использовать идентификатор ссылки для вызова массива? Итак, мы создали их, но в JavaScript я буду делать что-то вроде

$(this).attr("id").push("text"); // on link hover 

Это не работает, то, что это верный путь для этой цели?

+0

Каковы массивы для? Должны ли они быть на странице при загрузке или они создаются динамически? –

ответ

3

Вы не можете динамически создавать var s, но вы можете динамически добавлять свойства к объекту. Поэтому создать «мастер» объект для этой цели:

var master = {}; 
$('a').each(function() { 
    master[this.id] = []; 
}); 

Нажмите на массив как это:

master[this.id].push('text'); 
+0

это ПРАВИЛЬНЫЙ способ, но другой ответ - «запрошенный» способ :) - обратите внимание, что вы также можете добавить атрибуты к «ведущему». –

+0

@Mark. Согласовано. Пожалуйста, никто никогда не реализовал пример, который я дал :) Я почувствовал бы плохое влияние. – iivel

1

Хотя я абсолютно не знаю, почему вы хотите сделать это в отдельных массивах, вы можете создавать массивы (и все, что хотите) с помощью метода eval() JavaScript.


$(document).ready(function(){ 
    $("a").each(function(){ 
    eval("var " + $(this).attr("id") + " = new Array()") 
    }) 
}) 

Вы можете использовать eval аналогично push.

Ответ Box9 гораздо более разумный ИМО.

В качестве источника: http://www.hiteshagrawal.com/javascript/dynamic-variables-in-javascript

+0

+1 на этом также как «запрошенный» и обратите внимание на лучшее решение. –

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