js 点击li动态追加div元素,怎么防止重复追加??

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .kuang{padding-left: 10px; padding-right: 10px; border: 1px solid #FF0000; border-radius: 3px; display: inline-block; height: 20px; line-height:20px ;}
            ul{ padding: 0; margin: 0;}
            .list{height: 25px; line-height: 25px; border-bottom: 1px solid #ececec; list-style: none; width: 300px;}
        </style>
    </head>
    <body>
        <div class="top">
            <!--<div class='kuang'></div>-->
        </div>
        <ul class="bottom">
            <li class="list" disabled="disabled">计算机软件</li>
            <li class="list">计算机硬件</li>
            <li class="list">计算机服务</li>
            <li class="list">通讯</li>
            <li class="list">互联网</li>
        </ul>
        <script src="jquery-1.11.0.js"></script>
        <script>
        var index;
        $(".list").click(function(index){
            var aa = $(this).text();
            index = $(this).index();
            $(".top").append("<div class='kuang' id='"+index+"'>"+aa+"</div>");

        });
        </script>
    </body>
</html>
阅读 9.8k
3 个回答
  • 方案1:

    var index;
    var result=[];
    $(".list").click(function(index){
        var aa = $(this).text();
        index = $(this).index();
        if($.inArray(index,result)==-1) {
            result.push(index);
            $(".top").append("<div class='kuang' id='" + index + "'>" + aa + "</div>");
        }
    });
  • 方案2:

    var index;
    $(".list").click(function(index){
        var aa = $(this).text();
        index = $(this).index();
        if($(".top #"+index).length==0) {
            $(".top").append("<div class='kuang' id='" + index + "'>" + aa + "</div>");
        }
    });
  • 方案3:

    var index;
    $(".list").click(function(index){
        var $ele=$(this);
        var aa = $ele.text();
        index =$ele.index();
        if(!$ele.data('add')) {
            $ele.data('add',true);
            $(".top").append("<div class='kuang' id='" + index + "'>" + aa + "</div>");
        }
    });

直接给一个开关,添加时判断开关

判断元素<div class='kuang' id='"+index+"'>元素在不在文档里就行了

if(!document.getElementById(index)){
//不存在,则添加
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏