【问题标题】:switch case not working properly in javascript切换案例在javascript中无法正常工作
【发布时间】:2013-06-25 15:18:37
【问题描述】:

我已经为链接重定向编写了这段代码,但是代码的问题是它只触发了第一种情况,它在 switch 语句中省略了其他情况

<script type="text/javascript"> 
window.onload = function () {
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        var string = links[i].href; //href value
        var str = string;
        var spl = string.split("/");
        switch (spl[2]) {

            case 'www.google.com':
                var str1 = "http://yahoo.com";
                links[i].target = "_blank";
                var m = links[i].addEventListener("mouseup", function () {
                    window.open(str1)
                }, false);
                return (m);
                break;

            case 'www.ebay.com':
                var str1 = "http://yahoo.com";
                links[i].target = "_blank";
                var m = links[i].addEventListener("mouseup", function () {
                    window.open(str1)
                }, false);
                return (m);
                break;

            default:
                links[i].href = string;
        }

    }
}
</script> 

HTML:

<a href="http://www.google.com/">www.google.com</a></br>
<a href="http://www.ebay.com/">www.ebay.com</a></br>

【问题讨论】:

  • 您的代码在前两个cases 之间重复,您的意思是这样做吗?
  • 它适用于谷歌,但不适用于 ebay 链接重定向
  • 你为什么在里面有return 声明?他们将退出onload函数处理程序,所以它当然只访问循环中的第一个锚元素
  • 对于这个网站上提出的许多问题,我想知道开发人员是否可以使用常见的 Javascript 调试工具,或者他们是否只是编辑和刷新...尝试在 Chrome 中按 F12 或Internet Explorer 9+ 以获得一些非常有用的代码调试工具。
  • 谁能帮我为 Internet Explorer 编写这段代码...只是因为我是新人 2 java-script n 不太了解它

标签: javascript switch-statement case


【解决方案1】:

从上面的代码中删除 return(m)。它应该可以正常工作。第一次调用后返回。

【讨论】:

    【解决方案2】:

    因为你在这里有return(m);,它从那里返回并且不执行其余的代码。您可以通过在 return 语句后放置 alert("Hi"); 来测试它。这个alert 不应该适用于您的代码。

    <script type="text/javascript"> 
    window.onload = function () {
        var links = document.getElementsByTagName("a");
        for (var i = 0; i < links.length; i++) {
            var string = links[i].href; //href value
            var str = string;
            var spl = string.split("/");
            switch (spl[2]) {
    
                case 'www.google.com':
                    var str1 = "http://yahoo.com";
                    links[i].target = "_blank";
                    var m = links[i].addEventListener("mouseup", function () {
                        window.open(str1)
                    }, false);
                    break;
    
                case 'www.ebay.com':
                    var str1 = "http://yahoo.com";
                    links[i].target = "_blank";
                    var m = links[i].addEventListener("mouseup", function () {
                        window.open(str1)
                    }, false);
                    break;
    
                default:
                    links[i].href = string;
            }
    
        }
    }
    </script> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多