我正在使用一个模式来提交一份表格。我让它正常工作了。我遇到的问题是用ajax请求返回的数据子集替换模式的子集。
$.ajax({ url: actionUrl, method: 'post', data: dataToSend, processData: false, contentType: false })
.done(function (data) {
var newBody = $('.modal-body', data);
console.log(newBody);
placeholderElement.find('.modal-body').replaceWith(newBody);
//other stuff
}我正在尝试替换一个活动的模式子集(即获取模型体),并将其替换为ajax请求中的数据子集。
在某些情况下,我从ajax请求得到的响应如下:
<div class="modal-body"><div class="alert alert-danger">Error</div></div>但是,当我的ajax请求完成时,新的主体是空的。选择器($('.modal-body', data);)返回一个空对象。我不知道为什么它正在寻找的选择器存在于响应中,它应该将<div class="alert alert-danger">Error</div>作为新的对象返回。
如果我将响应修改为<div class="modal"><div class="modal-body"><div class="alert alert-danger">Error</div></div></div>,那么上面的选择器就可以工作了。
我的问题是,为什么一个起作用而另一个不起作用?
Works: $('.modal-body', '<div class="modal"><div class="modal-body"><div class="alert alert-danger">Error</div></div></div>');
不工作:$('.modal-body', '<div class="modal-body"><div class="alert alert-danger">Error</div></div>');
我需要做些什么来简化这件事?为什么其中一种选择不起作用?
在ajax请求中,我的placeholderElement是一个简单的引导模式:
<div class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="loading"></div>
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
//stuff
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-dark text-light" data-save="modal">Save changes</button>
</div>
</div>
</div>
</div>发布于 2019-01-17 23:38:59
选择器$('.modal-body', data)试图在数据中找到具有该类的现有元素,但数据必须是实际元素或另一个jQuery实例。如果data是一个字符串,您可以尝试首先解析该HTML:
var newBody = $('.modal-body', $(data));https://stackoverflow.com/questions/54245741
复制相似问题