如何从 AJAX 响应中替换html元素?我知道的是删除元素,如何用ajax响应替换删除的标记?例如:
我有这样的代码:
<ul id="products">
...............
</ul>
当我点击一个按钮时, AJAX 调用codeginter控制器,在那里我接收到从数据库中提取的新数据,并呈现在另一个视图中,该视图从ul开始,在关闭ul时结束。
在 AJAX success函数中我是这样做的:
$('#products').remove();
//What to do now here to replace the removed portion with response of ajax?
9条答案
按热度按时间wlwcrazw1#
您可以使用replaceWith(请参见:http://api.jquery.com/replaceWith/)
例如:
$('#products').replaceWith(response);
i5desfxk2#
假设您正在替换您的产品,如果您正在从控制器获取格式化的HTML,那么只需执行以下操作
不需要删除< ul >标记。您可以简单地用新替换< li >旧< li >
ki0zmccv3#
编辑:pascalvgemert提到的replaceWith函数更好https://stackoverflow.com/a/19527642/2887034
在其周围创建封套:
现在您可以执行以下操作:
mwecs4sa4#
您可以使用JQuery before
或者将div的内容替换为html
$('#products').html("yourhtmlreceivedfromajax");
yzuktlbb5#
如果您的主div位于另一个具有其他id的容器中,您可以这样做:
基于此结构:
使用jquery for AJAX 的Javascript代码
wz1wpwve6#
一个简单的方法是将ul Package 在容器中
在 AJAX 响应中
x7yiwoj47#
.remove()将元素完全从DOM中取出,如果只想替换
products
元素中的内容,可以使用.ReplaceWith()。如果将所有
<li>
作为HTML返回,则可以使用.html()aemubtdh8#
这样做
http://api.jquery.com/replaceWith/
ve7v8dk29#
使用此: