我需要使用新刷新的div将.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替换每个旧的div.status
?
答案 0 :(得分:0)
好吧,我实际上设法提出了一个可行的解决方案。
仅在目标节点列表上使用.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 );
});
}