我正在使用jQuery replaceWith()方法替换html中的某些内容。它的工作正常。但是我想在replaceWith()完成后更改数据属性值。
所以基本上我是从我的ajax响应中得到的
UpdatedItem = '<li data-cart-key="XXX" data-item-name="Test" data-item-price="$111.00" data-item-key="XXX"><span class="cart-action-wrap"><a class="edit-cart-item" data-cart-item="XXX" data-cart-key="XXX" data-cart-action="edit">Edit</a><a class="remove-cart-item" data-cart-item="XXX" data-cart-key="XXX" data-cart-action="remove">Remove</a></span></li>';
现在我在这里像这样使用replaceWith()
$( 'ul.custom-contents' ).find( 'li.updated' ).replaceWith( UpdatedItem );
在这里,我想使用诸如update data属性值,remove class,replaceWith()完成后添加class之类的方法。
那么有人可以告诉我有什么方法可以做到这一点吗?任何帮助和建议都是非常可取的。谢谢
最佳答案
您可以在replaceWith
中创建一个jQuery对象,执行操作并将其返回。将.find()
用于嵌套元素:
$( 'ul.custom-contents' ).find( 'li.updated' ).replaceWith( fucntion(){
let obj = $(UpdatedItem)
obj.addClass("..")
obj.data("cart-key", "..")
obj.data("item-name", "..")
obj.removeClass("..")
//Find <a> with class "edit-cart-item"
obj.find("a.edit-cart-item").addClass(...)
obj.find("a.edit-cart-item").data("item-name", "..")
return obj;
});
关于javascript - jQuery replaceWith()回调函数来更新内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61301228/