html = "<p>title</p><div><ul class='www'></ul>something</div>";
$html = $(html);
$html.filter('p').replaceWith('<h2>' + $html.filter('p').html() + '</h2>'); //not working
container = $('<div></div>');
html = container.html($html)[0].innerHTML; //trying to output "<h2>title</h2><div><ul class='www'></ul>something</div>"
在非DOM环境中,我正在尝试修改HTML字符串,替换其中一个成员。 jQuery&#39; replaceWith
不起作用,因为它适用于DOM。我该怎么做?
答案 0 :(得分:0)
看一下这个例子。首先我删除B,然后将其添加到A.然后我插入一个新的C.你可以用A,B和C替换所有内容。
重要的是,您删除并附加/添加手册:)
a = $('#a');
b = $('#b');
c = $('<span>').attr('id', 'c').text('C');
b.remove();
a.prepend(b);
a.append(c);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent">
<span id="a">A</span>
<span id="b">B</span>
</div>
&#13;
答案 1 :(得分:0)
虽然元素已被替换,但$html
未更新p
位于$html
变量
html = "<p>title</p><div><ul class='www'></ul>something</div>";
$container = $('<div></div>');
$container.html(html);
$container.find('p').replaceWith(function(idx, html) {
return '<h2>' + html + '</h2>'
})
html = $container[0].innerHTML;
console.log(html)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>