У меня следующий цикл:
for( i = 1; i < parseInt(data.anzahl_parameter) + 1; i++ )
{
newParameterInputFieldLabel = $( "<label>" )
.text( data.p1_einheit )
.attr( "for", "einheit1" )
.appendTo( newInputAreaAmountDiv );
newParameterInputField = $( "<input>" )
.addClass("insertFloat")
.attr("id", "einheit" + i)
.appendTo( newParameterInputFieldLabel );
}
Переменная data.p1_einheit исходит из json-массива. Это прекрасно работает, когда data.anzahl_parameter имеет только 1 элемент.
Но когда у меня есть два или более элемента, то я не мог использовать переменную динамически.
Я пробовал это:
data.p[i]_einheit
но мой скрипт останавливается.
Что я должен изменить, чтобы заставить его работать?
Вы должны поместить все имя свойства (как строку) между квадратными скобками. Используйте их вместо точечной нотации, а не в середине.
data["p" + i + _einheit]
Вероятно, вам лучше будет реорганизовать JSON, поэтому у вас есть массив вместо свойств, следующих за числовым соглашением.