简体   繁体   English

jQuery脚本无法在Chrome或Safari上运行

[英]JQuery script not working on Chrome or Safari

The following script works on IE and Firefox but I can't seem to figure out the reason why it's not working on Chrome and Safari. 以下脚本可在IE和Firefox上运行,但是我似乎无法弄清为什么它无法在Chrome和Safari上运行的原因。 The purpose of the script is simply to remove the first 4 options from list "B" if the first option in list "A" is clicked. 该脚本的目的只是在单击列表“ A”中的第一个选项时从列表“ B”中删除前四个选项。

Thanks in advance for any feedback! 预先感谢您的任何反馈!

  $("document").ready(function () { $('select[name="A"] option[value="001"]').click(function () { var vList = ["001", "002", "003", "004"]; $.each(vList, function (i, code) { $("select[name="B"] option[value=" + vList[i] + "]").remove(); }); }); }); 
 <select name="A" value=""> <option value=""></option> <option value="001">1 RED CATEGORY</option> <option value="002">2 BLUE CATEGORY</option> <option value="003">3 GREEN CATEGORY</option> <option value="004">4 YELLOW CATEGORY</option> <option value="005">5 BLACK CATEGORY</option> </select> <select name="B" value=""> <option value=""></option> <option value="001">1 - RED</option> <option value="002">2 - RED</option> <option value="003">3 - RED</option> <option value="004">4 - RED</option> <option value="005">1 - BLUE</option> <option value="006">2 - BLUE</option> <option value="007">3 - BLUE</option> <option value="008">4 - BLUE</option> <option value="009">1 - GREEN</option> <option value="010">2 - GREEN</option> <option value="011">3 - GREEN</option> <option value="012">4 - GREEN</option> <option value="013">1 - YELLOW</option> <option value="014">2 - YELLOW</option> <option value="015">3 - YELLOW</option> <option value="016">4 - YELLOW</option> <option value="017">1 - BLACK</option> <option value="018">2 - BLACK</option> <option value="019">3 - BLACK</option> <option value="020">4 - BLACK</option> </select> 

Try this on your jQuery: 在您的jQuery上尝试一下:

$(document).ready(function () {
    $('select[name="A"]').change(function(){
        if($(this).val() === '001'){
            var vList = ["001", "002", "003", "004"];
            $.each(vList, function(i, code){
                $('select[name="B"] option[value="' + code + '"]').remove();
            });
        }     
    });
 });

I tested this code in Chrome 我在Chrome中测试了此代码

See fiddle here 在这里看到小提琴

You have syntax error in line 您的行中有语法错误

$("select[name="B"] option[value=" + vList[i] + "]").remove();

B , instead of part of string value, becomes a variable, placed between two strings without operators. B而不是字符串值的一部分,成为一个变量,放置在两个没有运算符的字符串之间。 It should be, for example: 应该是,例如:

$("select[name='B'] option[value=" + vList[i] + "]").remove();

Also, I changed click event handler from 另外,我从更改了click事件处理程序

$('select[name="A"] option[value="001"]').click

to

$('select[name="A"]').change

with checking for selected value inside event handler for proper select changed value handling. 检查事件处理程序中的选定值以进行正确的select更改值处理。

Updated fiddle . 更新小提琴

$(document).ready(function()
{
    $('select[name="A"]').change(function()
    {
        var selected = $(this).val();
        if (selected == '001')
        {
            var vList = ["001", "002", "003", "004"];
            $.each(vList, function(i, code)
            {
                $("select[name='B'] option[value=" + vList[i] + "]").remove();
             });
        }
     });
});

And one more thing: instead of $("document") you can write $(document) . 还有一件事:您可以编写$(document)来代替$("document") $(document)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM