2016-04-08 3 views
0

Я пытаюсь вставить новое значение в свойство элемента массива с этой функцией.Получение неопределенной ошибки, но может сообщить значение

function updateLabel (e) { 
    var labelRow = e.parentNode.parentNode.rowIndex; 
    var fieldPosition = labelRow + 1; 
    var index = labelRow -1; 
    var newLabel = document.getElementsByTagName('input')[fieldPosition].value; 

    alert(newLabel); 

    xyarr[xyarr.index].label = newLabel; 


} 

Когда я предупреждаю (newLabel); он предупреждает о значении, которое я хочу сохранить, но когда я дойду до последней строки функции, я получаю сообщение об ошибке: Uncaught TypeError: Невозможно установить свойство «метка» неопределенного

+0

'xyarr [xyarr.index] = {метка: newLabel};' – Paulpro

+0

@Paulpro, который создает неопределенную объект в моем массиве. –

+0

Как выглядит ваш xyarr-массив? – sihao

ответ

2

Я не вижу, где xyarr.index. Вы хотите использовать вместо этого index? Сообщение об ошибке «Невозможно установить метку свойства» неопределенного », как представляется, указывает, что объект, который вы пытаетесь извлечь из вашего массива (т. Е. xyarr[xyarr.index]), не определен.

Вы также можете попробовать использовать следующий синтаксис индексатор попытаться установить свою собственность, а также:

xyarr[index]['label'] = newLabel; // or xyarr[xyarr.index]['label'] = newLabel; 
+0

Это работает! Спасибо, вы не возражаете объяснить, как я могу определить xyarr.index? –

+0

Я не думаю, что вам нужно определить его. Возможно, это была опечатка от вашего имени. В противном случае вы, вероятно, захотите создать класс, в котором будет храниться массив ('xyarr') и другое свойство для хранения вашего« индекса ». Однако, скорее всего, вам это не понадобится, поскольку ваш текущий код кажется достаточным. –

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