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

时间:2012-08-13 13:59:12

标签: javascript jquery

我正在创建一个像这样的jquery对象:

 htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");

主要在我这样做时似乎缺少一些元素:

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>");

} 

其中data是Json对象。

当我以字符串形式执行此操作时。例如 而不是

htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");

我愿意

htmlCode = htmlCode + "<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";

我想找出遗漏的内容,以便查看对象 我尝试了以下内容:

alert(JQuery.htmlCode.stringify());

alert(htmlCode.html);

虚空工作。

任何想法?

感谢。

4 个答案:

答案 0 :(得分:5)

您的第一行代码

htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");

将变量htmlCode声明为包含单个<div>元素的jQuery对象(由传递给函数的HTML定义)。

致电时

htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");

你将<select>元素(再次,由传递给函数的HTML定义)附加到<div>元素的末尾,这样可以正常工作。

然而,当你打电话

htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");

<option>添加到<div>元素,添加到<select>元素,这就是您想。

您似乎正在尝试使用jQuery对象和.append()函数构建HTML字符串,但不是jQuery所做的。 jQuery与实际元素一起使用,它只允许您传递HTML来创建它们。

答案 1 :(得分:1)

要获取DOM元素的字符串表示形式,您可以使用this other question中发布的内容。

但是,使用其他答案(console.log或Firebug)中提供的方法似乎是更容易的选择,因为它们无需修改代码即可工作。

答案 2 :(得分:0)

你应该使用Firefox / Firebug来查看对象,浏览它们,更改它们,......

答案 3 :(得分:0)

尝试类似:

if(data.type == "ListView"){
   var options;
   htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length    +" multiple></SELECT>");
   i = 0;
   while(i < data.listProps.length){

       options+="<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";
       i++;
   }
   $(htmlCode).find('select').html(options);

} 

以下是演示Demo