我有一个数据库,其中包含在按钮点击后在<select>
标记中动态添加的选项。
这就是HTML的样子,它在一个带有data-role="page"
(对于jQuerymobile)
<div id="endSessionPageContent" data-role="content">
<div data-role='fieldcontain' id="endSessionForm">
</div>
</div>
基本上,我从sqlite数据库中获取了一些值,然后我想将它们放在“endSessionForm”div中。应使用<inputs>
和<select>
元素显示数据。
该函数看起来像这样(为简单起见,这里没有sql交互):
function buildPage(divId){
$("#endSessionForm").empty();
var div = "<div><label>aaa</label><input></input></div>";
div += "<div><label>bbb</label><input></input></div>";
div += "<div><select><option>1</option><option>2</option><option>3</option></select></div>";
$('#endSessionForm').append(div);
$("#endSessionForm").trigger('create');
}
然后在一些事件之后,我调用了buildPage函数(请参阅此jsfiddle以获取实例http://jsfiddle.net/xdR43/12/)。触发器(create
)用于强制重新加载UI:
如您所见,<select>
未正确创建。 jsfiddle页面抛出此错误:
Syntax error, unrecognized expression: :nth-child
虽然,我的应用程序中的相同代码会引发此错误:
'undefined' is not an object (evaluating 'this.list[0].appendChild')
你认为有什么不对?感谢您的帮助,我希望我能为您提供所需的所有信息。如果您需要更多,请询问,我会添加em。
再次感谢,最好的问候
的 的 __ _ ___ 修改的 _ < / EM> __ _ ____
这是整个功能:
function buildPage(divId){
$(divId).empty();
for(var i = 0; i < results.rows.length; i++){
var area = results.rows.item(i).area;
var campo = results.rows.item(i).campo;
var campoWOspcs = campo.replace(/ /g,"_");
var valori = results.rows.item(i).valori;
var div = "<div><label for='newCompany_"+campoWOspcs+"'>"+campo+":</label>";
if(valori == ""){ //input
div += "<input type='text' name='"+campoWOspcs+"' id='newCompany_"+campoWOspcs+"' placeholder='"+campo+"'></input>";
}else{ //select
div += "<select name='"+campoWOspcs+"' multiple='multiple' id='newCompany_"+campoWOspcs+"'><option>Select "+campo+"</option>";
var split = valori.split(";");
for(var j = 0; j < (split.length -1); j++ ){
div += "<option>"+split[j]+"</option>";
}
div += "</select>";
}
div += "</div>";
$(divId).append(div);//alert(div);
}
$(divId).append(div);
$(divId).trigger('create');
}