javascript - jq插入移除节点问题
PHPz
PHPz 2017-04-11 10:50:39
[JavaScript讨论组]
    var temp=true;
 $(".chat-btn").click(function(){
         if(temp){
              $(this).parent().next().after($("#comment-reply-box"));
               console.log($(this).parent().next())
             }else{
                 $("#comment-reply-box").remove()
                 }    
                  temp=!temp  
     })

问题是这样的当我点击的时候插入一个p;再次点击的时候就移除;当我第三次点击的时候发现他就不插入p了;而我 console.log($(this).parent().next())都是同一个节点;请问这是怎么回事

PHPz
PHPz

学习是最好的投资!

全部回复(2)
阿神

首先是不插入的问题:当第二次点击 $("#comment-reply-box").remove() 之后,第三次点击 $("#comment-reply-box") 就取不到任何东西啦因为已经从DOM树移除啦。可以一开始就保存下来这个变量:

var temp=true;
var $box = $("#comment-reply-box");
$(".chat-btn").click(function(){
        if(temp){
            $(this).parent().next().after($box);
        }else{
            $box.remove()
        }    
        temp=!temp  
     })
})

然后为什么 $(this).parent().next() 都是同一个节点这个,没看到你这边的html我暂时不知道是为啥。

怪我咯
//因为你第二次操作将dom元素删除了,第三次操作$('#comment-reply-box')已经是undefined
//将id=comment-reply-box的dom写成字符串
//再将js改造哈
var temp=true;
var box = '<p id="comment-reply-box"></p>';
var $box='';
$(".chat-btn").click(function(){
        if(temp){
            $(this).parent().next().after(box);
            $box=$('#comment-reply-box');
        }else{
            $box.remove()
        }    
        temp=!temp  
     })
})
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号