我在用jquery mobile做项目时,遇到jm在下拉框等组件里不能正常动态更新内容,查找了相关资料,在这里抛砖引玉,先提供一个解决下拉框内容写入更新的解决方法:
jm解决下拉框内容写入的方法可以这样做:
var myselect = $("#sCountry");
myselect[0].selectedIndex = 3;
myselect.selectmenu('refresh');
实际工作中,比如我想做数据自动填充到下拉框中,据上我需要知道匹配的数据在当前下拉框列表中的序列位置,我试过很多方法都不能在保证下拉框里内容不受影响的情况下将内容写到下拉框的默认选中项里,这里我自己写了个方法,可以实现找到内容所在列表中的位置然后选中不改变原下拉框里任何内容。代码如下:
function findSelect($select,target){
var options=$select.children("option"); //一共的个数
var index;
var temp=[];
for(var i=0;i<options.length;i++){
var str=options.eq(i).text();
temp.push(str);
} for(var i=1;i<=options.length;i++){
if(temp[i-1]===target) index=i-1;
}
return index;
}
这个方法返回内容在列表中的序列位置,结合上面的代码,可以实现选中更新。
这里贴出系统的jm的相关问题及解决方法的资料地址(感谢这位作者):http://www.wglong.com/main/artical!details?id=4#q5。