我正在创建一个像这样的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);
虚空工作。
任何想法?
感谢。
答案 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