2014-01-22 2 views
1

Если у меня есть несколько входов html с одинаковым количеством ключей массива, но ключи неизвестны, как я могу получить значение третьего ключа массива?Получить nth ключевое значение входного массива

Пример:

HTML

<input name="data[key1][key2][0]" /> 
<input name="data[key1][key2][1]" /> 
<input name="data[key1][key2][2]" /> 

Что я ищу это значение 3-го ключа независимо от [key1][key2]. Мне нужно получить значение, чтобы я мог сбросить индексы, если пользователь удаляет вход.

Таким образом, если пользователь удаляет второй вход, массив

<input name="data[key1][key2][0]" /> 
<input name="data[key1][key2][2]" /> 

Я хотел бы цикл через массив и сброса индексов.

Любые предложения?

ответ

3

Если вы только собираетесь сбросить индекс, вы даже не нужно, чтобы получить это число (demo)

$('input').each(function(i) { 
    this.name = this.name.replace(/\[\d+\]$/, '[' + i + ']'); 
    console.log(this.name); 
}); 
+0

Это идеальный вариант, спасибо! – dcd0181

+0

+1 для избежания '$ (this) .attr ('name', ...)' и использования гораздо более эффективной альтернативы, которая также менее типична. :-) – RobG

1

Отрежьте .name от последних [ до последнего символа.

this.name.slice(this.name.lastIndexOf("["), -1); 
Смежные вопросы