jquery - 用数组中的对应元素替换元素
问题描述
我需要.status
用新的刷新的 div 替换 div 而不触及任何其他元素。我使用 ajax 调用的响应数据来获取新的 div。
<div class="wrap">
<div class="item-23">
<div class="title">
...
<div class="status">
...
</div>
<div class="item-451">
<div class="title">
...
<div class="status">
...
</div>
<div class="item-3">
<div class="title">
...
<div class="status">
...
</div>
</div>
这就是我到目前为止所拥有的。我可以像这样使用新的 div 获取数组:
function( response_data ) {
var $html = $.parseHTML( response_data );
var $new_divs = $( '.status', $html ); // refreshed divs are now in array
}
但是后来我不知道如何以我需要的方式用新的替换旧的。
我确实尝试$( '.status' ).replaceWith( $new_divs );
过,但是用所有新 div 的副本替换了每个旧 div。不是我想要的。
如何div.status
仅用相应的新 div 替换每个旧 div?
解决方案
好的,我实际上设法提出了一个可行的解决方案。
仅在目标节点列表上使用 .each 循环的当前索引就足够了。这是最终代码,以防有人遇到类似问题。
function( response_data ) {
var $html = $.parseHTML( response_data );
var $new_divs = $( '.status', $html );
var $old_divs = $( '.status' );
$.each( $new_divs, function( i ) {
$( $old_divs ).eq( i ).replaceWith( this );
});
}
推荐阅读
- javascript - 多次使用 window.onclick 会导致 React 出现问题
- ruamel.yaml - 未能安装大期望。错误:无法卸载“ruamel-yaml”
- python - 这些代码行是什么意思?将新闻专线解码回文本
- google-cloud-platform - 自己域下的服务帐号
- tags - GTM 发布标签未在网站中触发
- arrays - 将 numpy 数组加在一起会产生 NaN
- javascript - 带有 JavaScript 和 JQuery 的 ID 选择器不适用于显示或可见样式
- javascript - JS中通过文本改变变量或调用函数?
- databricks - 安装 databricks 时创建本地 sparksession
- python - 根据字符串列表过滤/删除项目