Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 对象没有方法拆分_Jquery - Fatal编程技术网

Jquery 对象没有方法拆分

Jquery 对象没有方法拆分,jquery,Jquery,大家好,我有一个脚本在Chrome和FF中运行良好,但在IE中似乎不起作用。。。 虽然它有一个java脚本错误,我无法解决它 错误是 未捕获类型错误:对象函数(){var b=this;var d=[];for(var a=b.length;a--;{var c=b[a];if(jQuery.inArray(c,d)=-1)d.unshift(c)}返回d}没有 方法“拆分” 请帮忙 function populate(s1,s2){ var s1 = document.getE

大家好,我有一个脚本在Chrome和FF中运行良好,但在IE中似乎不起作用。。。 虽然它有一个java脚本错误,我无法解决它 错误是

未捕获类型错误:对象函数(){var b=this;var d=[];for(var a=b.length;a--;{var c=b[a];if(jQuery.inArray(c,d)=-1)d.unshift(c)}返回d}没有 方法“拆分”

请帮忙

    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);
    }
}

看起来您正在使用一些扩展来向数组原型添加属性,因此IE会对其他浏览器不具备的附加值进行操作。直接解决方法是,对使用普通的

for(var i = 0; i < optionArray.length; ++i) {
    // and now use optionArray[i] instead of optionArray[option]
}

您正在if和其他if中定义var
optionArray
,但不是在泛型else中,因此在某些情况下,
optionArray
可以不定义

您可以移动if顶部的定义,或定义泛型else

代码:


在拆分之前添加一个console.log,您的
optionArray[option]
中的一个可能未定义。在
for
循环之前,检查
optionArray
是否已定义。1)避免
for in
在数组上,至少没有特殊原因;2) 似乎找不到假定值
optionArray[option]
。在对其运行
split
之前,请尝试将其记录到控制台日志中。您正在if和其他if中定义var optionArray,但不在通用的else中,因此可以不定义选项数组。当你面对这个问题时,s1.value的价值是什么?谢谢你的回答:)
for(var option in optionArray){
    if (!optionArray.hasOwnProperty(option)) continue;
    // the rest without modification
}
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);
    }
}