I have a html string (not DOM), that I want to manipulate using jquery. Why doesn't this work:
var html = '<div><h4><a class="preview-target" href="content.html">Headline</a></h4></div>';
console.log(html);
var elem = $('h4', $(html));
// replace "Headline" with "whatever" => Doesn't work
elem.replaceWith("whatever");
console.log(html);
I have a jsfiddle here for testing.
The above code is just a simplified example. The real html is much more complex, that is, I definitely need to rely on jQuery for manipulating the html string.
When you modify the jQuery object, it will not change the value in the string literal.
You can use
var html = '<div><h4><a class="preview-target" href="content.html">Headline</a></h4></div>';
console.log(html);
var $html = $('<div />',{html:html});
// replace "Headline" with "whatever" => Doesn't work
$html.find('a').html("whatever");
console.log($html.html());
Demo: Fiddle
You can find the h4 then call the replaceWith method.
var html = $('<div><h4><a class="preview-target" href="content.html">Headline</a></h4></div>');
console.log(html.html());
html.find('h4').replaceWith('whatever')
console.log(html.html());
var html = '<div><h4><a class="preview-target" href="content.html">Headline</a></h4></div>';
var replaced=html.replace("Headline","whatever");
console.log(replaced);
Try this
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.