问题
The following almost works in replace all instances of span[data-type="yesno"]
with lis, but I'd like to also preserve the attributes, classes, etc. Is there a way to carry over the attributes in the same way as the html?
$('span[data-type="yesno"]').replaceWith(function(){
return $("<li>", {html: $(this).html()});
})
回答1:
You have to loop on your element attributes :
$('span[data-type="yesno"]').replaceWith(function(){
$li = $("<li>", {html: $(this).html()});
$.each(this.attributes, function(i, attribute){
$li.attr(attribute.name, attribute.value);
});
return $li;
})
来源:https://stackoverflow.com/questions/20356749/replace-element-and-preserve-attributes