【发布时间】:2012-04-03 20:15:35
【问题描述】:
我需要根据 JSON 响应动态创建单选按钮。到目前为止,我在 Chrome 和 Firefox 中所做的工作,但在 if(subItem[1].indexOf(",") >= 0) 行上给出了 Object doesn't support this property or method
我的代码
$("#sList").live("change", function(){
var currentService=this.value;
var c1Svc=[];
var c2Svc=[];
if(absP.length==2)
{
$.each(compareServiceData,function(i,item){
if(currentService==item[0])
{
var configCount=0;
$.each(item[1],function(j,subItem){
var temp=subItem[1];
/*The JSON response contains List of Lists, so here if it contains a list it will be separated by "," so split it and store in a array, else directly store in a array*/
if(subItem[1].indexOf(",") >= 0)
{
var tList=temp.split(",");
$.each(tList,function(k,val){
if(configCount==0)
{
c1Svc.push(val);
}
else
{
c2Svc.push(val);
}
});
}
else
{
if(configCount==0)
{
c1Svc.push(subItem[1]);
}
else
{
c2Svc.push(subItem[1]);
}
}
configCount++;
});
}
});
if ($("#customServiceListing").length == 0)
{
$("#compareContent").append('<table id="customServiceListing" align="center" width="90%" class="csm-table" border="1"><tbody><tr><td><form id="c1Service"></form></td><td><form id="c2Service"></form></td></tr></tbody></table>');
}
else
{
$('#c1Service').empty();
$('#c2Service').empty();
}
}
else
{
$("#compareContent").append('<table align="center" width="90%" class="csm-table" border="1"><tbody><tr><td><form><select id="c1Service"></select></form></td><td><select id="c2Service"></select></td><td><select id="c3Service"></select></td></tr></tbody></table>');
}
/*adding service radios to config1*/
$.each(c1Svc,function(i,item){
$("#c1Service").append('<input type="radio" name="customConfig1ServiceNames" id="'+item+'" value="'+i+1+'"/>'+item);
});
if(c1Svc.length>1)
$("#c1Service").append('<br/>');
/*adding service radios to config2*/
$.each(c2Svc,function(i,item){
$("#c2Service").append('<input type="radio" name="customConfig2ServiceNames" id="'+item+'" value="'+i+1+'"/>'+item);
});
if(c2Svc.length>1)
$("#c2Service").append('<br/>');
});
更新
Here是IE8不支持的各种功能代码列表
更新
这里有什么问题,对于它给我的每个值 -1 我正在使用 Sudhir 给出的代码
alert(subItem[1].indexOf(",")+", "+subItem[1]);
截图
更新
知道了,var temp=subItem[1].toString(); 是问题所在,将其转换为 String 有效。
【问题讨论】:
-
是的,一定要爱上 IE。见这里:stackoverflow.com/questions/1744310/…
-
是的,一定要爱上 IE。见这里:stackoverflow.com/questions/1744310/…
-
IE 总是落后于所有其他浏览器数年。这是我今天早上看到的第二个类似问题,询问在 IE 中无法使用但在其他任何地方都可以使用的东西。
标签: javascript jquery html internet-explorer internet-explorer-8