I think the difference is nearly self-explanatory. And it's super trivial to test.
jQuery.html()
treats the string as HTML, jQuery.text()
treats the content as text
<html>
<head>
<title>Test Page</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#div1").html('<a href="example.html">Link</a><b>hello</b>');
$("#div2").text('<a href="example.html">Link</a><b>hello</b>');
});
</script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
A difference that may not be so obvious is described in the jQuery API documentation
In the documentation for .html():
The
.html()
method is not available in XML documents.
And in the documentation for .text():
Unlike the
.html()
method,.text()
can be used in both XML and HTML documents.
$(function() {_x000D_
$("#div1").html('<a href="example.html">Link</a><b>hello</b>');_x000D_
$("#div2").text('<a href="example.html">Link</a><b>hello</b>');_x000D_
});
_x000D_
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>_x000D_
<div id="div1"></div>_x000D_
<div id="div2"></div>
_x000D_