首页 新闻 会员 周边

该段代码将实现点击一次加一,但该段代码中有错误,请指出并提供一段正确的功能相同的代码。

-2
[已解决问题] 解决于 2014-07-09 16:15
<div>
       <ul>
           <li class=”btn”>1</li>
           <li class=”btn”>2</li>
           <li class=”btn”>3</li>
           <li class=”btn”>4</li>
           <li class=”btn”>5</li>
           <li class=”btn”>6</li>
           <li class=”btn”>7</li>
           <li class=”btn”>8</li>
<li class=”btn”>9</li>
   </ul>
</div>
<script>
Var liBtn =document.getElementsByClassName( “li” );
For ( var I = 0; I < 10; i++ ) {
    LiBtn.onclick = function() {
    This.innerHTML += 1;
}
}
</script>
该段代码将实现点击一次加一,但该段代码中有错误,请指出并提供一段正确的功能相同的代码。
xiaoleilei的主页 xiaoleilei | 初学一级 | 园豆:80
提问于:2014-07-07 16:55
< >
分享
最佳答案
0

哥们,你是手敲的代码?错误太多了,js是最难弄的,有时候一个大小写问题,就让人头疼了。

错误一:var,for,this大写了,原因js为大小写敏感的,也就是区分大小写。

错误二:document.getElementsByClassName( “li” );你写的根据类样式找到li元素,而你没有应用类样式

错误三:循环中liBtn大写了,而且liBtn是个数组,你直接.click并不知道是哪个元素

错误四:for循环中 I和i,是怎么回事?,注意标点的中英文

错误五:li没有class属性,你非得给他一个class属性,那是自定义的了,所以找不到

参考:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style>
        .btn {
         width:20px;
         cursor:pointer;
        }

    </style>
</head>
<body>
    <div>
        <ul>
            <li  class="btn">1</li>
            <li class="btn">2</li>
            <li class="btn">3</li>
            <li class="btn">4</li>
            <li class="btn">5</li>
            <li class="btn">6</li>
            <li class="btn">7</li>
            <li class="btn">8</li>
            <li class="btn">9</li>
        </ul>
    </div>
    <script>
        var liBtn= document.getElementsByTagName("li");
       
        for(var i=0;i < liBtn.length; i++ ) {
            liBtn[i].onclick = function () {
                this.innerHTML++;
            }
        }
    </script>
</body>
</html>

希望能帮到你

奖励园豆:5
wolfy | 老鸟四级 |园豆:2636 | 2014-07-07 20:44

我今天又测试了一下,li确实可以加上class类样式,给你说错了 ,不好意思

wolfy | 园豆:2636 (老鸟四级) | 2014-07-12 10:58
其他回答(4)
0

转换类型再加1呢?

笨鸟飞飞 | 园豆:104 (初学一级) | 2014-07-07 17:00
0

这是面试题?问题表述好官方。

首先liBtn是数据,不是单个对象,所以 LiBtn.onclick 是错误的,

第二,一共才9个li,你却循环了10次???

angelshelter | 园豆:9887 (大侠五级) | 2014-07-07 17:02

具体步骤呢

支持(0) 反对(0) xiaoleilei | 园豆:80 (初学一级) | 2014-07-07 17:11

@xiaoleilei: 关注我的博客就告诉你。

支持(0) 反对(0) angelshelter | 园豆:9887 (大侠五级) | 2014-07-07 17:34

@xiaoleilei: 

<html>
<body>
<div>
<ul>
<li class="btn">1</li>
<li class="btn">2</li>
<li class="btn">3</li>
<li class="btn">4</li>
<li class="btn">5</li>
<li class="btn">6</li>
<li class="btn">7</li>
<li class="btn">8</li>
<li class="btn">9</li>
</ul>
</div>
</body>
<html>
<script>

var liBtn =document.getElementsByClassName("btn");
for ( var i = 0; i < liBtn.length; i++ ) {
liBtn[i].onclick = function() {
this.innerHTML ++;
}
}
</script>

支持(0) 反对(0) angelshelter | 园豆:9887 (大侠五级) | 2014-07-07 17:35
0

下面这段代码应该能满足你的要求,你看看:

  <div>
       <ul>
           <li class="btn">1</li>
           <li class="btn">2</li>
           <li class="btn">3</li>
           <li class="btn">4</li>
           <li class="btn">5</li>
           <li class="btn">6</li>
           <li class="btn">7</li>
           <li class="btn">8</li>
           <li class="btn">9</li>
   </ul>
</div>
<script type="text/javascript">
var nodes =document.getElementsByTagName("li");
for ( var I = 0; I < 9; I++ ) {
    nodes[I].onclick = function() {
    var n= parseInt(this.innerHTML);
    this.innerHTML=n+1;
  }
}
</script>

希望能帮到你。

火悬崖 | 园豆:434 (菜鸟二级) | 2014-07-07 22:32
0

这么多高手帮你你居然分都不给。哎

+小马哥++ | 园豆:906 (小虾三级) | 2014-07-08 11:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册