Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:';未定义';不是Javascript中的对象_Javascript_Jquery_Backbone.js - Fatal编程技术网

类型错误:';未定义';不是Javascript中的对象

类型错误:';未定义';不是Javascript中的对象,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一段Javascript代码,它将字符串值分配给字符串数组。 不幸的是,如果我尝试向数组中添加多个字符串,我的UI模拟器(在JS代码上运行)会意外关闭。我已尝试调试,但找不到任何东西。我在问题所在的地方附上那段代码。也许你们能找到一些瑕疵?在弹出按钮上,单击我在UI上选择的值应该存储在数组中,我在服务器端有一个相应的变量来处理这个字符串数组 _popupButtonClick: function (button) { var solutions = this.

我有一段Javascript代码,它将字符串值分配给字符串数组。 不幸的是,如果我尝试向数组中添加多个字符串,我的UI模拟器(在JS代码上运行)会意外关闭。我已尝试调试,但找不到任何东西。我在问题所在的地方附上那段代码。也许你们能找到一些瑕疵?在弹出按钮上,单击我在UI上选择的值应该存储在数组中,我在服务器端有一个相应的变量来处理这个字符串数组

_popupButtonClick: function (button) {
                var solutions = this._stateModel.get('solutionName');
                var i;
                var solutionsLength = solutions.length;
                var selectedSolution = [solutionsLength];


                this.clearPopupTimer();
                if (button.position === StatusViewModel.ResponseType.Ok) {

                    for(i=0;i<solutionsLength;i++)
                    {
                        if(this._list.listItems[i].selected)
                        {
                            selectedSolution[i] = this._list.listItems[i].options.value;
                        }
                    }

                    this._stateModel.save({
                        selectedsolutions: selectedSolution,
                        viewResponse: StatusViewModel.ResponseType.Ok
                    });
                } else {
                    this._stateModel.save({
                        viewResponse: StatusViewModel.ResponseType.Cancel
                    });
                }

            }
\u弹出按钮点击:功能(按钮){
var solutions=this.\u stateModel.get('solutionName');
var i;
var solutionsLength=solutions.length;
var selectedSolution=[solutionsLength];
这个.clearPopupTimer();
if(button.position==StatusViewModel.ResponseType.Ok){
对于(i=0;i变化

这会使阵列中有一个可能导致崩溃的额外项

而且

你有一个

if(this._list.listItems[i].selected)
{
    selectedSolution[i] = this._list.listItems[i].options.value;
} 
但是没有对应的其他值,因此数组中有未定义的
i
值,这些值没有输入if

也许添加一个空字符串可以解决这个问题:

if(this._list.listItems[i].selected)
{
    selectedSolution[i] = this._list.listItems[i].options.value;
} 
else
{
    selectedSolution[i] = "";
}
改变

这会使阵列中有一个可能导致崩溃的额外项

而且

你有一个

if(this._list.listItems[i].selected)
{
    selectedSolution[i] = this._list.listItems[i].options.value;
} 
但是没有对应的其他值,因此数组中有未定义的
i
值,这些值没有输入if

也许添加一个空字符串可以解决这个问题:

if(this._list.listItems[i].selected)
{
    selectedSolution[i] = this._list.listItems[i].options.value;
} 
else
{
    selectedSolution[i] = "";
}

代码看起来不错,但似乎有一段代码可能会导致错误。例如,您正在分配
var selectedSolution=[solutionsLength];
,例如
solutionsLength为5
,然后循环运行
5次

for(i=0;i<solutionsLength;i++) // runs for 5 times
{
    if(this._list.listItems[i].selected)
    {
        // but selectedSolution = [5]; which is on 0th index and from 1st to 4th index it is undefined
        selectedSolution[i] = this._list.listItems[i].options.value;
    }
}
在初始化时,将其更改为

 var selectedSolution = [];

希望这能解决您的问题。

代码看起来不错,但似乎有一段代码可能会导致错误。例如,您正在分配
var selectedSolution=[solutionsLength];
例如
solutionsLength为5
,然后循环运行
5次

for(i=0;i<solutionsLength;i++) // runs for 5 times
{
    if(this._list.listItems[i].selected)
    {
        // but selectedSolution = [5]; which is on 0th index and from 1st to 4th index it is undefined
        selectedSolution[i] = this._list.listItems[i].options.value;
    }
}
var selectedSolution = [solutionsLength]; 
在初始化时,将其更改为

 var selectedSolution = [];
希望这能解决你的问题

var selectedSolution = [solutionsLength]; 
将该值保留在selectedSolution变量中

    var selectedSolution = [3];
    selectedSolution[0] gives the values as 3
所以说得简单点

var selectedSolution = [];
将该值保留在selectedSolution变量中

    var selectedSolution = [3];
    selectedSolution[0] gives the values as 3
所以说得简单点

var selectedSolution = [];

StatusViewModel是javascript对象吗?如果不是,请将其设置为“OK”和“CANCEL”StatusViewModel用于处理按钮按下。我在服务器端也有一个对应的映射。这很好。问题在for循环中,如果条件是我所想的StatusViewModel,它是javascript对象吗?如果不是,只将其设置为“OK”和“CANCEL”StatusViewModel用于处理按钮按下。我在服务器端也有一个相应的映射。这很好。问题在for循环中,如果条件是我所想的,感谢您在如此短的时间内回复。当然,我会尝试您的方法,如果它有效,我会回复您(即使它不起作用:p)非常感谢您在如此短的时间内回复。当然,我会尝试您的方法,如果它有效,我会回复您(即使它不起作用:p)