2016-04-08 14 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:未定義の 'label'プロパティを設定できません

+0

'xyarr [xyarr.index] = {ラベル:newLabel};未定義のオブジェクトを作成しています' – Paulpro

+0

@Paulpro私の配列で –

+0

あなたのxyarr配列はどのように見えますか? – sihao

答えて

2

xyarr.indexがどこに定義されていませんか?いいえ、私は保存したい値を警告します。代わりにindexを使用していますか? 「未定義のプロパティ 'label'を設定できません」というエラーメッセージは、配列から取得しようとしているオブジェクト(つまり、xyarr[xyarr.index])が未定義であることを示しています。

あなたはまた、同様にあなたのプロパティを設定しようとする、次のインデクサー構文を使用して試すことができます:

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

これは機能します!ありがとう、私はxyarr.indexをどのように定義できるか説明してもらえませんか? –

+0

私はあなたがそれを定義する必要はないと思う。それはちょうどあなたのためにタイプミスかもしれません。それ以外の場合は、配列( 'xyarr')を格納するクラスと、' index'を格納する別のプロパティを作成したいと思うでしょう。しかし、あなたの現在のコードが十分であるように、あなたはそれを必要としない可能性が高いです。 –

関連する問題