请将jQuery对象转换为字符串帮助

Sag*_*ael 0 javascript jquery

我正在创建一个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)

更虚空的工作.

有任何想法吗??

谢谢.

Ant*_*ist 5

你的第一行代码

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来创建它们.