我在将原始元素从div
替换为div
之后尝试换input
但不起作用,有人可能会在下面建议我的代码有什么问题,谢谢。
$('.sth').replaceWith(
$('<input>', {
value: $('.sth').text(),
type: 'text'
})
).wrap('<div class="new" />');
答案 0 :(得分:4)
http://api.jquery.com/replaceWith/
用提供的元素替换匹配元素集中的每个元素 新内容并返回已删除的元素集。
$('.sth').replaceWith(
$('<input>', {
value: $('.sth').text(),
type: 'text'
}).wrap('<div class="new" />').parent()
);
答案 1 :(得分:2)
replaceWith
会返回已移除的.sth
元素。引文:
与大多数jQuery方法一样,.replaceWith()方法返回 jQuery对象,以便可以将其他方法链接到它上面。然而, 必须注意的是返回原始的jQuery对象。这个 object指的是从DOM中删除的元素,而不是 已取代它的新元素。
所以你要包装错误的元素,不再是DOM中的元素了。
答案 2 :(得分:1)
你可以尝试
$('.sth').wrap('<div class="new" />').replaceWith(
$('<input>', {
value: $('.sth').text(),
type: 'text'
})
);