我正在创建一个jquery对象,如下所示:
htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");
Run Code Online (Sandbox Code Playgroud)
它主要是在我这样做时似乎缺少一些元素:
if(data.type == "ListView"){
htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");
i = 0;
while(i < data.listProps.length){
htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");
i++;
}
htmlCode.append("</SELECT>");
}
Run Code Online (Sandbox Code Playgroud)
其中data是Json对象.
当我这样做它作为一个字符串它是有效的.例如,而不是
htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");
Run Code Online (Sandbox Code Playgroud)
我会做
htmlCode = htmlCode + "<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";
Run Code Online (Sandbox Code Playgroud)
我想找出遗漏的内容,所以我想看看对象我已经尝试过以下内容:
alert(JQuery.htmlCode.stringify());
alert(htmlCode.html);
Run Code Online (Sandbox Code Playgroud)
更虚空的工作.
有任何想法吗??
谢谢.
你的第一行代码
htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");
Run Code Online (Sandbox Code Playgroud)
将变量声明htmlCode为包含单个<div>元素的jQuery对象(由传递给函数的HTML定义).
你打电话的时候
htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");
Run Code Online (Sandbox Code Playgroud)
你将一个<select>元素(再次,由传递给函数的HTML定义)附加到该<div>元素的末尾,这可以正常工作.
但是,当你打电话
htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");
Run Code Online (Sandbox Code Playgroud)
你还追加了<option>对<div>元素,不给<select>是你想要的元素.
看起来你正在尝试使用jQuery对象和.append()函数构建一个HTML字符串,但这不是jQuery的作用.jQuery适用于实际元素,它只允许您传递HTML来创建它们.