【问题标题】:Cannot set property 'editable' of undefined无法设置未定义的属性“可编辑”
【发布时间】:2014-07-21 18:16:16
【问题描述】:

我正在尝试更改作为对象数组一部分的对象的属性值,并在控制台中收到以下消息:

Uncaught TypeError: Cannot set property 'editable' of undefined

将此属性的值打印到控制台有效,但更改它无效。以下是我的 jsfiddle。

http://jsfiddle.net/UtpFU/5/

如何更改属于上述 jsfiddle 中的对象数组一部分的对象的值?

//data file
var data = [
    {editable:true,greeting:'hello'},
    {editable:true,greeting:'bye'},
    {editable:true,greeting:'good morning'}
];

//updating data
var readWrite = function (text, label, value){
    for (i=0;i<=text.length;i++){
        if (label=='editable'){
            if (value==true){
                //changing the value of the editable property DOES NOT WORK
                text[i].editable=true;
            }
                else {
                    text[i].editable=false;
                }
        }
    }
    //printing data after changing the values of its properties
    console.log(data);
}

$(document).ready(function(){
    //printing data to the console
    console.log(data);
    //updating data and printing it to the console - DOES NOT WORK - what am I missing?
    readWrite(data, 'editable', true);
})

【问题讨论】:

    标签: javascript jquery object properties undefined


    【解决方案1】:

    你的循环不对,把&lt;=改成&lt;

    for (i=0;i<text.length;i++){
    

    使用&lt;= 超出范围,使text[i] 未定义。它迭代所有对象,然后尝试再迭代一个,但不存在。

    Updated fiddle.

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 2022-10-30
      • 2023-02-10
      • 2015-12-07
      • 2013-05-28
      • 2016-02-23
      • 2011-11-20
      相关资源
      最近更新 更多