jQuery set innerText(), innerHTML(), textContent()
jQuery can be used in conjunction with plain ole JavaScript to change the text of a html element and set it to contain new content which could be text, images, code or anything you want. Here we will look in detail at the following JS functions and show you how, when and where you might use them.
This post covers the following jQuery functions: innerText(), innerHTML(), textContent()
jQuery innerText() function
Syntax: document.elementID.innerText = value
Functionality: JavaScript read and write property that specifies the text between the element opening and closing tags.
Behaviour: Includes line breaks.
Browser Compatiablity: innerText() works in all browsers that we have tested on.
Basic Example:
Sample Text inside a p element
JavaScript innerHTML() function
Syntax:
document.getElementById(“elementID”).innerHTML = value
document.all.elementID.innerHTML = value // IE only
Functionality: Native JavaScript function to change the html within a page element.
Behaviour: It strips out line breaks.
Browser Compatiablity: innerHTML is supported in all browsers.
Basic Example:
Sample Text inside a p element
Advanced Example: Regular Expression replacing
tags by n makes sure that it works like innerText, and the final replace() is a regular expression that removes all HTML tags.
var message = div.innerHTML.replace(/<br>/gi,"n").replace(/(<([^>]+)>)/gi, "")
jQuery textContent() Function
Syntax:
var text = element.textContent;
element.textContent = "i love jQuery (4u :P )";
Functionality: jQuery FF Function to change the text of a page element.
Behaviour: It strips out line breaks.
Browser Compatiablity: Firefox has its own property called textContent which is supported by Chrome and Opera but IE does not support it!
Basic Example(s):
Given the following HTML fragment:
// Get the text content:
var text = document.getElementById("divA").textContent;
// Set the text content:
document.getElementById("divA").textContent = "This is some text";
The linebreak problem
innerText() shows “para1? and “para2? with a line break in-between but textcontent() does not:
//IE/innerText():
para1
para2
//FF/textcontent():
para1para2
HTML/JS Code to test all of them out and pick one!
jQuery4u - This is a division element that contains some red text.
Other jQuery functions that can be used to change page elements: innertext.replace, innerHTML, innerText, textContent, html(), text(), div.innerHTML.replace, document.body.innerText, $.fn.innerText, div:contains, document.getElementById(id).innerText.