我用jQuery和Ajax在3到4个小时内挣扎。我有一个简单的ajax调用,必须替换节点内的HTML。
HTML就是这样:
<ul class="nav navbar-nav pull-right" id="notify">
<!-- BEGIN NOTIFICATION DROPDOWN -->
<li></li>
</ul>
我的jQuery ajax调用就是这个
$(document).on("click", ".formato", function (e) {
e.preventDefault();
var a = $(this).data('format');
var b = $(this).data('content');
$.ajax({
url: '/magazine/article',
type: 'POST',
data: {
format: a,
content: b,
},
success: function (data) {
console.log(data);
$('#notify').replaceWith(data);
},
error: function () {
//if fails
}
});
});
我检查了Chrome调试器的XHR响应并且响应正常:我的Sinatra应用程序返回<li>
元素以放置在<ul>
内。但没有任何事情发生,console.log也无法正常工作。
我在js控制台中没有任何错误。
你知道发生了什么吗?
答案 0 :(得分:0)
不要使用replaceWith,因为它会将您的ul
元素替换为响应中的内容(本例中为li
),这是不正确的,请改用html()
函数:< / p>
$('#notify').html(data)