In a webpage I am calling a WebService that gives 开发者_高级运维me an integer value. I need to display this value in a block of text. I am currently using an HTML <span>
.
So far, I've found two methods of putting my value in a span. innerText()
is an IE proprietary way of doing it and innerHTML()
is a non-standards compliant way, although widely supported.
What is the correct standards compliant way of setting the text between <span>
and </span>
from Javascript?
With modern browsers, you can set the textContent
property, see Node.textContent:
var span = document.getElementById("myspan");
span.textContent = "some text";
This is standards compliant and cross-browser safe.
Example: http://jsfiddle.net/kv9pw/
var span = document.getElementById('someID');
while( span.firstChild ) {
span.removeChild( span.firstChild );
}
span.appendChild( document.createTextNode("some new content") );
To do it without using a JavaScript library such as jQuery, you'd do it like this:
var span = document.getElementById("myspan"),
text = document.createTextNode(''+intValue);
span.innerHTML = ''; // clear existing
span.appendChild(text);
If you do want to use jQuery, it's just this:
$("#myspan").text(''+intValue);
The Maximally Standards Compliant way to do it is to create a text node containing the text you want and append it to the span (removing any currently extant text nodes).
The way I would actually do it is to use jQuery's .text()
.
精彩评论