为了账号安全,请及时绑定邮箱和手机立即绑定

Js脚本没执行,why?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="css/initial.css"/>
    <link rel="stylesheet" type="text/css" href="css/单选按钮美化.css"/>
    <script type="text/javascript">
        function show(index){
          var list=document.getElementsById("type").getElementsByTagName("li");
//            var list=document.getElementsById("type").getElementsByClassName("radio");
            for(var i=1; i<list.length;i++){
                if(index==i){
//                    list[i].className.addClass("selected");
                    list[i].className="radio selected";
                }
                else{
//                    list[i].className.removeClass("selected");
                    list[i].className="radio";
                }
            }
        }
    </script>
</head>
<body>
    <div>
        <ul id="type">
            <li>配送类型</li>
            <li class="radio selected" onclick="show(1)"><a href="#"><b></b>全部</a></li>
            <li onclick="show(2)"><a href="#"><b></b>京东配送</a></li>
            <li onclick="show(3)"><a href="#"><b></b>第三方配送</a></li>
        </ul>
    </div>
</body>
</html>

css文件
div.container{
    width: 400px;
    height: 32px;
    border: 1px solid #dfdfdf;
    margin: 30px auto 0;
}
ul{
    height: 32px;
    line-height: 32px;
    padding-left: 15px;
    list-style-type: none;
}
ul li{
    display: inline-block;
    float: left;
}
li.radio{
    /*border: 1px solid #ff0000;*/
    margin: 0 10px 0 8px;
    padding-left: 23px;
    position: relative;
    /*给radio设置position相对布局后,
    其中的子元素b设置position绝对布局后才会以该li为包含块进行位置调整*/
}
li.radio a{
    color: #000000;
    text-decoration: none;
}
li.radio a:hover{
    color: #cc0000;
    text-decoration: underline;
    /*当鼠标移动到a超链接上时链接文字变成红色同时加下划线*/
}
li.radio a b{
    display: block;
    width: 20px;
    height: 20px;
    position: absolute;
    left: 0;
    top: 6px;
    background: url("../img/singleRadio.gif") no-repeat;
    background-position: -15px -18px;
}
li.radio a:hover b{
    background-position: -15px -118px;
    /*当鼠标移动到a超链接上时b按钮图片变成闪光状态*/
}
li.selected a b,li.selected a:hover b{
    background-position: -15px -218px;
}

我写的Js脚本为什么没执行成功呢,求大神帮忙!

正在回答

4 回答

var list=document.getElementsById("type").getElementsByTagName("li");

应该是getElementsById("type") 多写了 s

还有这句 for(var i=1; i<list.length;i++)

既然从0开始 那么就应该是 i<=list.length 不然只会执行两次就停下来了 执行不了三次

0 回复 有任何疑惑可以回复我~
#1

小王子抓猫咪 提问者

非常感谢!
2015-08-27 回复 有任何疑惑可以回复我~
#2

小王子抓猫咪 提问者

elementNode.className除了直接赋值外,有没有add,remove等方法呢。
2015-08-27 回复 有任何疑惑可以回复我~
#3

Cast1e 回复 小王子抓猫咪 提问者

有的,是你的调用有问题 你写的list[i].className.addClass("selected"); 应该是 list[i].addClass("selected");,addclass本来就是元素的方法,className是属性,你这种调用。。明显有问题啊 类似于 $("button").click(function(){ $("h1,h2,p").addClass("blue"); $("div").addClass("important"); });这样子 也是有removeClass的
2015-08-27 回复 有任何疑惑可以回复我~
#4

小王子抓猫咪 提问者

太感谢了
2015-08-27 回复 有任何疑惑可以回复我~
#5

小王子抓猫咪 提问者 回复 Cast1e

太感谢了
2015-08-27 回复 有任何疑惑可以回复我~
查看2条回复

getElementById

0 回复 有任何疑惑可以回复我~

onclick位置写错了 应该在a里面的

<dd class='selected'><a href="#" onclick="show(0)"><b></b>全部</a></dd>
                <dd><a href="#" onclick="show(1)"><b></b>京东配送</a></dd>
                <dd><a href="#" onclick="show(2)"><b></b>第三方配送</a></dd>

0 回复 有任何疑惑可以回复我~

写错了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
表单美化
  • 参与学习       41153    人
  • 解答问题       151    个

本教程讲解表单美化,主要是对方法和思路的分享,让表单与众不同

进入课程

Js脚本没执行,why?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信