Чтобы использовать для перебора массива или объекта .each()
, вам нужно использовать разные сигнатуры для ввода функции. Поэтому использование function(bu, key)
не подходит *.
function(index, value) <<< Array
function(key, value) <<< Object
Ниже приведены два примера использования вашей разметки в качестве примера. Заметьте, я добавил немного ширины в UL
, чтобы я мог показывать индексы и значения.
var ok = [1,2,3];
$('.list li').remove();
$.each(ok, function(index, value){
$('<li>"key.name_units ('+index+', '+value+')" '+
'<input type="text" name="out[]">'+
'<input type="text" name="out[]">'+
'</li>').appendTo('.list');
});
ok = {
four: '4',
five: '5',
six: '6'
};
$.each(ok, function(key, value){
$('<li>"key.name_units ('+key+', '+value+')" '+
'<input type="text" name="out[]">'+
'<input type="text" name="out[]">'+
'</li>').appendTo('.list');
});
Что будет:
<li>"key.name_units (0, 1)" <input name="out[]" type="text"><input name="out[]" type="text"></li>
<li>"key.name_units (1, 2)" <input name="out[]" type="text"><input name="out[]" type="text"></li>
<li>"key.name_units (2, 3)" <input name="out[]" type="text"><input name="out[]" type="text"></li>
<li>"key.name_units (four, 4)" <input name="out[]" type="text"><input name="out[]" type="text"></li>
<li>"key.name_units (five, 5)" <input name="out[]" type="text"><input name="out[]" type="text"></li>
<li>"key.name_units (six, 6)" <input name="out[]" type="text"><input name="out[]" type="text"></li>
http://jsfiddle.net/userdude/SXXee/1/
* По крайней мере, я не думаю, что это.
Вам нужно будет объяснить, что вы пытаетесь сделать – bcoughlan
Я не думаю, что Селена говорит на очень хорошем английском языке, поэтому попробуйте взглянуть на пример скрипки. –
Связанный вопрос (как-то, я думаю): http://stackoverflow.com/questions/7291898/problem-in-use-of-each –