Javascript JS中的作用域问题:未捕获类型错误:对象#<;对象>;没有方法';createDocumentFragment';

Javascript JS中的作用域问题:未捕获类型错误:对象#<;对象>;没有方法';createDocumentFragment';,javascript,jquery,jqgrid,scope,Javascript,Jquery,Jqgrid,Scope,我正在尝试使工具简化复杂网格的工作,这是一个可以读取网格方案的函数,但看起来我缺乏JS技能) 函数以递归方式呈现系统(方案、容器){ //孩子们 if('scheme中的children'&&scheme.children.length>0){ scheme.prm.gridPrm.subGrid=true scheme.prm.gridPrm.subGridRowExpanded=函数(expandedRowContainer\u id,父\u dataitem\u id){ var hidd

我正在尝试使工具简化复杂网格的工作,这是一个可以读取网格方案的函数,但看起来我缺乏JS技能)

函数以递归方式呈现系统(方案、容器){
//孩子们
if('scheme中的children'&&scheme.children.length>0){
scheme.prm.gridPrm.subGrid=true
scheme.prm.gridPrm.subGridRowExpanded=函数(expandedRowContainer\u id,父\u dataitem\u id){
var hiddenAtStart=(scheme.children.length>1)?true:false
for(方案中的var i.children){
var child=scheme.children[i]
if(子项中的“方案”){
//下一行导致错误
//未捕获的TypeError:对象#没有方法“createDocumentFragment”
var subcainer=$('',{id:expandedRowContainer_id+''子容器+child.subId})
container.append(子容器)
child.scheme.hiddengrid=(child.scheme.hiddengrid==未定义)?hiddenAtStart:child.scheme.hiddengrid
var self=$('#'+subcainer.attr('id')+''u grid'))
child.scheme.prm=child.scheme.prmInit(父项\u数据项\u id,自身)
child.scheme.prm.navMode='子网格'
以递归方式呈现系统(child.scheme,subcainer)
}
}
}
}
//...
renderGrid(scheme.prm、容器、scheme.prm.navMode)
}
函数定义位于单独的文件中,并且在全局范围内。 函数在ready()外部调用,但错误在subGridRowExpanded事件处理程序内部发生,所以看起来我把闭包搞砸了,无法弄清楚具体是如何发生的


除了jquery,我不使用任何其他库。

我想您喜欢做的是:

var subcontainer = $('<div style="float: left;"/>').attr({id:expandedRowContainer_id+'_'+child.subId});
var subcainer=$('').attr({id:expandedRowContainer\u id+''+child.subId});
createDocumentFragment()是一种用于创建文档的方法

$('<div style="float: left;"/>')
$(“”)

…将创建一个新的DocumentFragment。如果提供第二个参数,则该参数将作为上下文(应该是文档,而不是实际的文档)。这会导致错误。

您的语法有点不正确,在使用时不能让元素具有内联属性和传入的属性(或事件)对象。因此:

 $('<div style="float: left;"/>',{id:expandedRowContainer_id+'_'+child.subId})
$(“”,{id:expandedRowContainer\u id+“”+child.subId})
必须是这样的:

 $('<div />',{id:expandedRowContainer_id+'_'+child.subId, css:{float:'left'}})
$(“”,{id:expandedRowContainer\u id+“”+child.subId,css:{float:'left'})
 $('<div />',{id:expandedRowContainer_id+'_'+child.subId, css:{float:'left'}})