【问题标题】:How to replace content with javascript from Ajax response如何从 Ajax 响应中用 javascript 替换内容
【发布时间】:2018-10-20 04:01:09
【问题描述】:

我不想用从部分视图中获得的新数据替换索引视图中的 div 部分。我得到了正确的响应,我在萤火虫中看到了。现在我只在成功时显示一个警告窗口,表示它正在工作。 Bellow 是我的 Ajax 代码和我得到的响应的一部分(ul 中的 20 个列表组项)。那么我是否必须像我认为的那样为每个 div javascript 代码编写,还是有其他选择?可以举一些例子吗?

问候!

<script>
        function testAjax() {
            debugger;
            $.ajax({
                url: "@Url.Content("~/Controller/MyAction")",
                data: "searchString=search",
                type: "Post",
                beforeSend: function () {
                    //Code for before send whatever you have to do.
                },
                success: function (data) {
                    alert("It's Working!");
                },
                error: function (response) {
                    //Your code when error ocure
                    alert(response.responseText);
                },
                failure: function (response) {
                    //your code for failure
                    alert(response.responseText);
                }
            })
        }
    </script>

我的回答:

<ul class="list-group infinite-scroll">                       
        <li class="list-group-item col-md-6">
            <div class="noo-event-featured-item grow">
                <div class="sc-event-content">
                    <h3><a href="/Controller/Podrobnosti/73" onclick="checkCookie();">text</a></h3>
                    <div class="bottom">
                        <div class="create-date">
                            <span>
                                date
                            </span>
                        </div>
                    </div>
                </div>
                <div class="sc-event-item">
                    <div class="event-thumbnail">
                        <a href="link" >
                            <img src="image link">
                        </a>
                        <div class="sc-meta">
                            <span class="sc-date"><i class="fa fa-clock-o"></i><span> text</span></span>
                            <span class="sc-address">
                                <i class="fa  fa-map-marker" style="padding-left: 3px;"></i>Place<span class="tribe-address">
                                    <span class="tribe-street-address">Street</span><span class="tribe-delimiter"
>, </span>
                                    <span class="tribe-locality">Country</span>
                                </span>
                            </span>                         
                        </div>
                    </div>
                </div>               
            </div>
        </li>
</ul>

【问题讨论】:

  • 预期输出是什么?你想操纵什么?
  • 用我从响应中得到的替换我的 ul。
  • 如果你想用响应 html 完全替换你的 div,你应该尝试 .replaceWith(data) 而不是 .html(data)。

标签: javascript ajax asp.net-mvc


【解决方案1】:

谢谢大家,我知道了。您必须在除$(".divid").replaceWith(data);之前使用一个点@

【讨论】:

    【解决方案2】:

    如果您的响应是 html 代码(纯文本),您可以尝试在成功函数中使用类似的内容:

    $('yourDiv').html(data);//replace child nodes
    

    【讨论】:

    • 对不起,它对我不起作用 :( 搜索功能正常工作,我得到另外 20 个结果-无限分页,但前 20 个结果没有更新。我必须修改不显眼的脚本。还是我应该在success方法中写一些foreach函数?
    • 我在警报窗口alert(data)中得到了所有数据,但我不知道如何替换数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多