Hi I have a simple html structure
<h1>Title text <span>inner text</span></h1>
What I want is to replace only the text (Title text) without disturb the <span>
text. Is this possible?
I don't want to add any other dom element, I would like to keep that structure. I been doing this of course.
$("h1").text("new text");
But you can guess... will replace all the innert text and the span
text element as well.
Possible solution:
I was thinking in copy in a variable the text of the span and then concatenate it with the new <h1>
text, But I think maybe exist a better and clean way to do it.
Use the textContent property to change the text of a div element, e.g. div. textContent = 'Replacement text' . The textContent property will set the text of the div to the provided string, replacing any of the existing content.
The Document Object Model (DOM) is a programming interface for HTML web pages. Scripting languages, like JavaScript, can access and manipulate the DOM to alter the display of a web page. In this guide, you learn about the methods and properties you can use to modify the DOM by adding and removing element nodes.
Use the textContent property to change the text of an element, e.g. element. textContent = 'New text' . The textContent property will set the text of the element to the provided string, replacing any of the existing content.
Using jQuery.contents() you can replace the nodeValue
similar to this:
$("h1").contents()[0].nodeValue = "new text ";
DEMO using jQuery.contents()
to replace a text node
$("h1").each(function() {
var textNode = document.createTextNode("new text");
this.replaceChild(textNode, this.firstChild);
});
DEMO: http://jsfiddle.net/FvbJa/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With