我想通过面向对象的思想来实现点击数量的累加,奈何实力有限,想请教下大家,我的想法是否现实
目的:很多条新闻在同一页面,每一条新闻下面有三个表示数量的区域,每个区域有一个标签显示数量,一个标签是一个+1的标签,只要点击+1,前面的数字就会自动加1,因为有很多个这样的区域,所以我想封装一个函数来实现,想到了面向对象
我的想法是:将前面的数字所在的标签和后面的+1标签作为参数,用一个函数来实现上面的操作,奈何想了好久也没有实现,目前确实找到了替代方法,但是我还是想知道我的这个想法可以实现吗?谢谢大家了!

解决方案 »

  1.   


    <span id="s1">1</span><input type="button" onclick="add1('s1')" value="+1" /><br>
    <span id="s2">1</span><input type="button" onclick="add1('s2')" value="+1" /><br>
    <span id="s3">1</span><input type="button" onclick="add1('s3')" value="+1" /><br>
    <span id="s4">1</span><input type="button" onclick="add1('s4')" value="+1" /><br>
    <script type="text/javascript">
    function add1(id) {
    document.getElementById(id).innerText++;
    }
    </script>
      

  2.   

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    </head>
    <style type="text/css">
    .dd{
    background-color: blue;
    }
    #ce{
    border: 1px solid red;
    margin-bottom: 15px;
    width: 200px;
    }
    </style>
    <body>
    <div id='ce' class="aaa">
    <div class="pp">
    56
    </div>
    赞:<button class="btn_zan">500</button>
    </div>
    <div id='ce' class="aaa">
    <div class="pp">
    56
    </div>
    赞:<button  class="btn_zan">500</button>
    </div>
    </body>
    <script type="text/javascript">
    var btn_zan=document.querySelectorAll('.btn_zan')
    function dianZan(a){
    // 获取点赞按钮
    var z=a.getAttribute('class')
    if(z=='btn_zan'){
    a.innerHTML  =parseInt(a.innerHTML) + 1;
    a.className='btn_zan dd'
    // 获取父元素和父元素之后的要改变的元素 然后进行操作
    // 重点是parentNode 和getElementsByClassName('pp')[0]
    var ccc=a.parentNode.getElementsByClassName('pp')[0];
    ccc.innerHTML=parseInt(ccc.innerHTML)+1
    }else{
    a.innerHTML  =parseInt(a.innerHTML) -1;
    a.className='btn_zan'
    // 获取父元素 然后进行操作
    var nnn=a.parentNode.getElementsByClassName('pp')[0];
    nnn.innerHTML=parseInt(nnn.innerHTML)-1
    }
    }
    // 绑定事件 完成! 用this 来获取当前对象
    for(var i=0;i<btn_zan.length;i++){
    btn_zan[i].onclick= function(){
    dianZan(this)
    }
    }
    </script>
    </html>