首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象没有方法拆分。

对象没有方法拆分。
EN

Stack Overflow用户
提问于 2013-09-10 10:22:30
回答 2查看 183关注 0票数 0

HEllo的家伙们,我有一个脚本运行良好的Chrome和FF,但似乎不工作在IE.虽然它有一个java脚本错误,但我无法解决它,错误是

Uncaught :对象函数(){var b=this;var d=[];for(var a=b.ength;a-;){var c=ba;if(jQuery.inArray(c,d)==-1)d.unshift(C)}返回d}没有“拆分”方法

请帮帮忙

代码语言:javascript
复制
    function populate(s1,s2){
    var s1 = document.getElementById(s1);
    var s2 = document.getElementById(s2);
    s2.innerHTML = "";
    if(s1.value == "bedroom"){
        var optionArray = ["|Room Type","private|Private","shared|Shared","suite|Suite"];
    } else if(s1.value == "house"){
        var optionArray = ["|House Type","beach_house|Beach House","bungalow|Bungalow","cabin|Cabin","chateau|Chateau","house|House","cottage|Cottage","lake_house|Lake House","ski_chalet|Ski Chalet","townhosue|Townhouse","villa|Villa"];
    } else if(s1.value == "apartment"){
        var optionArray = ["|Appartment Type","apartment|Apartment","apartment_hotel|Apartment Hotel","condo|Condo","loft|Loft","luxury_apartment|Luxury Apartment","serviced_aparment|Serviced Apartment"];
    } else if(s1.value == "bnb"){
        var optionArray = ["|B&B Type","room|Room","suite|Suite"];
    } else if(s1.value == "hotel"){
        var optionArray = ["|Hotel Type","boutique_hotel|Boutique Hotel","budget_hotel|Budget Hotel","hotel|Hotel","inn|Inn","resort|Resort"];
    } else if(s1.value == "hostel"){
        var optionArray = ["|Hostel Type","hostel|Hostel"];
    }
    for(var option in optionArray){
        var pair = optionArray[option].split("|");
        var newOption = document.createElement("option");
        newOption.value = pair[0];
        newOption.innerHTML = pair[1];
        s2.options.add(newOption);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-10 10:27:06

看起来您使用的是一些扩展,它将属性添加到数组原型中,因此IE对其他浏览器没有的附加值进行操作。直接修复是针对 on your array,使用普通的for代替:

代码语言:javascript
复制
for(var i = 0; i < optionArray.length; ++i) {
    // and now use optionArray[i] instead of optionArray[option]
}

另一种选择是将这些属性过滤掉

代码语言:javascript
复制
for(var option in optionArray){
    if (!optionArray.hasOwnProperty(option)) continue;
    // the rest without modification
}
票数 0
EN

Stack Overflow用户

发布于 2013-09-10 10:35:56

您是在if和一些if中定义var optionArray,但不是在泛型optionArray中,因此在某些情况下,optionArray可以是未定义的。

您可以将定义移至if的顶部,也可以定义泛型的else。

代码:

代码语言:javascript
复制
function populate(s1,s2){
    var s1 = document.getElementById(s1);
    var s2 = document.getElementById(s2);
    s2.innerHTML = "";
    var optionArray=new Array();
    if(s1.value == "bedroom"){
        optionArray = ["|Room Type","private|Private","shared|Shared","suite|Suite"];
    } else if(s1.value == "house"){
        optionArray = ["|House Type","beach_house|Beach House","bungalow|Bungalow","cabin|Cabin","chateau|Chateau","house|House","cottage|Cottage","lake_house|Lake House","ski_chalet|Ski Chalet","townhosue|Townhouse","villa|Villa"];
    } else if(s1.value == "apartment"){
        optionArray = ["|Appartment Type","apartment|Apartment","apartment_hotel|Apartment Hotel","condo|Condo","loft|Loft","luxury_apartment|Luxury Apartment","serviced_aparment|Serviced Apartment"];
    } else if(s1.value == "bnb"){
        optionArray = ["|B&B Type","room|Room","suite|Suite"];
    } else if(s1.value == "hotel"){
        optionArray = ["|Hotel Type","boutique_hotel|Boutique Hotel","budget_hotel|Budget Hotel","hotel|Hotel","inn|Inn","resort|Resort"];
    } else if(s1.value == "hostel"){
        optionArray = ["|Hostel Type","hostel|Hostel"];
    }
    for(var option in optionArray){
        var pair = optionArray[option].split("|");
        var newOption = document.createElement("option");
        newOption.value = pair[0];
        newOption.innerHTML = pair[1];
        s2.options.add(newOption);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18716352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档