javascript - Ajax返回数据jquery中不重复内容

标签 javascript jquery ajax

当点击按钮的时候显示某内容,再点击按钮的时候内容隐藏,再点击按钮的时候又显示重复内容,不知道如何解决这个问题?大神能帮忙解决一下吗?非常感谢!

HTML 文件

<button id="liuyan" type="button" class="btn btn-primary btn-lg">my click</button><div id="mydiv2">

JavaScript 文件

    $("button#liuyan").on("click", function(e) {

        e.preventDefault();

        $.ajax({
            url: 'http://localhost:3000/api/comment',
            method: 'GET',
            dataType: "jsonp",
            async: false, 
        }).done(function(data, textStatus, jqXHR) {

            var mydiv2 = $("#mydiv2");

            if (mydiv2.css("display") === "none") {
                mydiv2.show();
                var mycode = document.createElement('div');
                mycode.innerHTML = '<pre><code data-language="json">' + JSON.stringify(data, undefined, 2) + '</code></pre>';
                Rainbow.color(mycode, function() {
                    document.getElementById('mydiv2').appendChild(mycode)
                });
            } else {
                mydiv2.hide();

            }

            console.log(data);
            console.log(jqXHR.responseText);
        });

    });

最佳答案

我没有 AJAX URL。我提供了虚拟数据。它应该可以工作。

每次,当显示您正在将内容附加到现有内容时。所以会重复。因此,您必须删除 div 中现有的内容并将其附加到 div 中。

在追加之前添加此行

document.getElementById('mydiv2').innerHTML = '';

然后现有内容将被清除。

$("button#liuyan").on("click", function(e) {

        e.preventDefault();

           data = {
           "name":"hello"
           }

            var mydiv2 = $("#mydiv2");

            if (mydiv2.css("display") === "none") {
                mydiv2.show();
                var mycode = document.createElement('div');
                mycode.innerHTML = '<pre><code data-language="json">' + JSON.stringify(data, undefined, 2) + '</code></pre>';
                //Rainbow.color(mycode, function() {
                 document.getElementById('mydiv2').innerHTML = '';    
                 document.getElementById('mydiv2').appendChild(mycode)
                //});
            } else {
                mydiv2.hide();

            }

         //   console.log(data);
        //    console.log(jqXHR.responseText);
       // });

    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="liuyan">Click</button>
<div id="mydiv2"></div>

另一种方式:

您可以调用就绪函数并在单击按钮时显示和隐藏

关于javascript - Ajax返回数据jquery中不重复内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123431/

相关文章:

javascript - 适用于 Wrike API v3 的 Ajax/ASP.net Oauth2

javascript - 使用 TogetherJS 扩展性将更改同步到 Div

javascript - 使用 jquery 仅获取省略号文本

javascript - jQuery 成功处理程序未在生产服务器上执行,但在开发中运行良好

javascript - IE9 中的 AJAX 问题?

javascript - jQuery:获取 JSON 请求响应并将其显示在当前 html 页面下

javascript - 如何在 Gatsby.js 中将时间戳附加到 markdown 前面的内容

javascript - Facebook 封面图片重新定位代码

JavaScript 回调函数

javascript - 加载图像缓慢导致 jQuery 高度变量出现问题