Jquery / Jquerymobile动态填充<select> - ERROR </select>

时间:2012-06-04 14:48:40

标签: javascript jquery html jquery-mobile

我有一个数据库,其中包含在按钮点击后在<select>标记中动态添加的选项。 这就是HTML的样子,它在一个带有data-role="page"(对于jQuerymobile)

的div中
<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');   
}

0 个答案:

没有答案