JavaScript代码在IE8中不起作用

标签 javascript jquery html css internet-explorer-8

我有两个下拉菜单。选择一个菜单后,其他菜单的值就会发生变化。但在 IE 中它不起作用,我的下拉列表显示为空。这是我的代码

<div style="position:absolute; bottom:95px; right:631px;">
    <select id='Country' name='Country' style="width: 148px;background-color:white;">
        <option selected='selected'>All Countries</option>
        <option>Australia</option>
        <option>Cambodia</option>
        <option>China</option>
        <option>India</option>
        <option>Indonesia</option>
        <option>Hong Kong</option>
    </select>
    <select id='Airport' name='Airport' style="width: 148px;background-color:white;"></select>
</div>

JavaScript 代码

<script type="text/javascript">

 (function(){

     var bOptions = {"All Countries":["All Airports"], "Australia":["Sydney","Brisbane","Melbourne","Perth"], "Cambodia":["Phnom Penh"], "China":["Beijing","Guangzhou","Hangzhou","Kunmimg","Shanghai Pudong","Shanghai Hongqiao"],
         "India":["Bangalore","Mumbai","Delhi"],"Indonesia":["Jakarta","Bali"],"Hong Kong":["Hong Kong"],"Japan":["Osaka","Narita","Haneda"],"Korea":["Seoul Gimpo","Seoul Incheon"],
         "Macau":["Macau"],"Malaysia":["Kuala Lumpur"],"New Zealand":["Auckland"],"Philippines":["Manila"],"Singapore":["Singapore"],"Taiwan":["Taipei","Kaohsiung","Songshan"],"Thailand":["Bangkok","Phuket"],
         "Vietnam":["Hanoi","Ho Chi Minh City"]};

        var A = document.getElementById('Country');
        var B = document.getElementById('Airport');

        //on change is a good event for this because you are guarenteed the value is different
        A.onchange = function(){
            //clear out B
            B.length = 0;
            //get the selected value from A
            var _val = this.options[this.selectedIndex].value;
            //loop through bOption at the selected value
            for ( var i in bOptions[_val]){
                //create option tag
                var op = document.createElement('option');
                //set its value
                op.value = bOptions[_val][i];
                //set the display label
                op.text = bOptions[_val][i];
                //append it to B
                B.appendChild(op);
            }
        };
        //fire this to update B on load
        A.onchange();

    })();

</script>

有人帮忙吗?

最佳答案

尝试对旧版 IE 使用op.innerText = bOptions[_val][i];,因为它不支持op.text

更改您的代码,例如,

if(IE8)// use user_agent to get browser version and browser type
{
    op.innerText = bOptions[_val][i];
}
else
{
    op.text = bOptions[_val][i];
}

阅读browser compalibiltyinnerText

关于JavaScript代码在IE8中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151442/

相关文章:

javascript - 如何改进这个 jQuery 代码?

javascript - 单击链接时跳过更改位置

javascript - 具有覆盖的不均匀响应图像/文本网格

javascript - 带有必填字段的 Onclick 表单?

javascript - 在 slider 上暂停视频

javascript - 在 Protractor 中使用 Jasmine 记者时无法生成报告

jquery - 扩展Google CDN版本的jquery以添加datepicker

jquery - 按名称搜索但按ID保存

javascript - 如何从上一个视频结束的确切时间开始播放视频?

javascript - CouchDB - 映射函数中的变量