切换案例在javascript中无法正常工作

时间:2013-06-25 15:18:37

标签: javascript switch-statement case

我已经为链接重定向编写了此代码但是代码问题仅触发了第一种情况它在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>

2 个答案:

答案 0 :(得分:0)

由于此处有return(m);,因此从那里返回并且不执行其余代码。您可以通过在返回语句后放置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> 

答案 1 :(得分:0)

从上面的代码中删除return(m)。它应该工作正常。它是在第一次通话后返回的。