Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 未捕获类型错误:无法使用‘;在’;操作员搜索‘;长度’;在jquery-1.11.1.js:583中_Javascript_Jquery - Fatal编程技术网

Javascript 未捕获类型错误:无法使用‘;在’;操作员搜索‘;长度’;在jquery-1.11.1.js:583中

Javascript 未捕获类型错误:无法使用‘;在’;操作员搜索‘;长度’;在jquery-1.11.1.js:583中,javascript,jquery,Javascript,Jquery,我有两个JS文件,如下所示(page1.JS)和(page2.JS供参考,如下所示)。我在工作时基本上是指以下JSON响应: { "webservice_status": { "status": "SUCCESS", "message": "" }, "my_document_list": [{ "doc1": "445", "doc2": "445", "doc3

我有两个JS文件,如下所示(page1.JS)和(page2.JS供参考,如下所示)。我在工作时基本上是指以下JSON响应:

{
    "webservice_status": {
        "status": "SUCCESS",
        "message": ""
    },

    "my_document_list": [{

            "doc1": "445",
            "doc2": "445",
            "doc3": "445",
            "doc4": "445",
            "content": "Some text here to display"
        }

    ]
}
以下是我的
page1.js
相关工作:

$("#mydoclist").on('rowclick', function (event) {
            row = event.args.rowindex;
            datarow = $("#mydoclist").jqxGrid('getrowdata', row);
            var response = JSON.stringify(datarow, null, 10);
            var docID  = datarow["doc_id"];
            self.getMyDocumentContents(docID);

   });

this.getMyDocumentContents = function (contentID_) {

   var data = {
      doc_id: contentID_
   }

   app_.get(data, self.processContent, app_.processError, url_name);

}// End of getMyDocumentContents


this.processContent = function(data_,textStatus_,jqXHR_) {

      data_ = app_.convertResponse(data_,jqXHR_);
      console.log("Checking for actual data_ content:", data_); 
      console.log("Actual Data Length Check for data_ content:", data_.my_document_list.length); 

      // debugger;

      var collection = data_.my_document_list.length[0].content;
      console.log("Collection Check",collection);

      //debugger;

       var source = {
         localdata: collection,
         datafields: [{
         name: 'content',
         type: 'string'
       }],
      datatype: "array"
      };


      var dataAdapter = new $.jqx.dataAdapter(source, {

           loadComplete: function (records) {

                debugger;

                var html;

          //Get data
            var records = dataAdapter.records;
            console.log("Check for records:",records.length);
            var length = records.length;
            html = "<div style='margin: 10px;'><pre>" + records[0].content + "</pre></div>";
            $("#docContentPanel").jqxPanel('clearcontent');
            $("#docContentPanel").jqxPanel('append',html);

            },
            loadError: function (xhr, status, error) { },
            beforeLoadComplete: function (records) {

            }

           });

            // perform data binding
            dataAdapter.dataBind();

            var panel = $("#docContentPanel");
            var content = panel.html();
            panel.jqxPanel({ width: '750', height: '500', scrollBarSize: 20 });

 }// End of processContent
function isArraylike( obj ) {
    var length = obj.length,
        type = jQuery.type( obj );

    if ( type === "function" || jQuery.isWindow( obj ) ) {
        return false;
    }

    if ( obj.nodeType === 1 && length ) {
        return true;
    }

    return type === "array" || length === 0 ||
        typeof length === "number" && length > 0 && ( length - 1 ) in obj; // THIS is LINE 583 which throws error
}
基本上,当用户单击jqxgrid时,它会在jqxgrid(上面的代码中没有提到)中显示一个行列表
$(“#mydoclist”)。在('rowclick
上调用,调用以下函数:
getMyDocumentContents
函数:此函数基本上传递生成的
doc\u id
内部数据变量 可用于以下功能:
processContent:
在这个函数中,我试图在jqxPanel中显示
我的文档列表
数组中的
内容
的值

我在该函数中面临的问题: 可以看到,我在不同的地方放置了调试器,除了一个地方之外,其他地方都有注释 就在这一行的下方
loadComplete:function(records){
在这一行上面我没有得到任何错误
var-dataAdapter=new$.jqx.dataAdapter(source,{,
),但是,只要 我把它放在里面,我得到以下错误:

未捕获的TypeError:无法使用'in'运算符在jquery-1.11.1.js:583中搜索'length'

其中,length是一个数字,它根据上述JSON响应中
content
值的长度不断变化。 谁能告诉我出了什么问题吗?提前谢谢! 为了以防万一,以下是jQuery行#583 isArraylike函数:


我是否应该尝试更改jQuery版本?

数据\我的文档\列表。长度[0]。内容;
我想您需要
数据\我的文档\列表[0]。内容;


my_document_list
是一个数组,因此数组访问应该发生在那里。

谢谢。我做了你提到的事情,它仍然是一样的。我想我在我的帖子中提到了错误的一行。实际测试只涉及这一行
var collection=data_。my_document_list[0].content;
谢谢您的时间。非常感谢。我可以通过修改此行'var collection=data.my\u document\u list.length[0]来修复此错误。content;`to`var collection=data.my\u document\u list.length`
function isArraylike( obj ) {
    var length = obj.length,
        type = jQuery.type( obj );

    if ( type === "function" || jQuery.isWindow( obj ) ) {
        return false;
    }

    if ( obj.nodeType === 1 && length ) {
        return true;
    }

    return type === "array" || length === 0 ||
        typeof length === "number" && length > 0 && ( length - 1 ) in obj; // THIS is LINE 583 which throws error
}