Answers:
在HTML()函数可以利用HTML的字符串,将有效地改变.innerHTML
性质。
$('#regTitle').html('Hello World');
但是,text()函数将更改指定元素的(text)值,但保留html
结构。
$('#regTitle').text('Hello world');
text()
不同的是:Unlike the .html() method, .text() can be used in both XML and HTML documents.
。此外,根据stackoverflow.com/questions/1910794/...,jQuery.html() treats the string as HTML, jQuery.text() treats the content as text
。
如果您有一个jquery对象而不是现有内容,则要呈现:然后重置内容并附加新内容。
var itemtoReplaceContentOf = $('#regTitle');
itemtoReplaceContentOf.html('');
newcontent.appendTo(itemtoReplaceContentOf);
要么:
$('#regTitle').empty().append(newcontent);
itemtoReplaceContentOf.empty();
newcontent
jQuery对象吗?这还不清楚。
htmlString
或Element
或Text
或Array
或jQuery
按api.jquery.com/append
已经有给出如何更改元素内部HTML的答案。
但是我建议,您应该使用诸如Fade Out / Fade In之类的动画来更改HTML,这样可以很好地更改HTML,而不是立即更改内部HTML。
$('#regTitle').fadeOut(500, function() {
$(this).html('Hello World!').fadeIn(500);
});
如果您有许多需要此功能的函数,则可以调用更改内部HTML的通用函数。
function changeInnerHtml(elementPath, newText){
$(elementPath).fadeOut(500, function() {
$(this).html(newText).fadeIn(500);
});
}
jQuery .html()
可以用于设置和获取匹配的非空元素(innerHTML
)的内容。
var contents = $(element).html();
$(element).html("insert content into element");
例
$( document ).ready(function() {
$('.msg').html('hello world');
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<div class="msg"></div>
</body>
</html>
只是为了添加一些性能见解。
几年前,我有一个项目,在尝试将大型HTML /文本设置为各种HTML元素时遇到了问题。
看起来,“重新创建”元素并将其注入DOM比任何建议的更新DOM内容的方法要快得多。
所以像:
var text = "very big content";
$("#regTitle").remove();
$("<div id='regTitle'>" + text + "</div>").appendTo("body");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
应该可以给您带来更好的表现。我最近没有尝试过衡量(浏览器现在应该很聪明),但是如果您正在寻找性能,它可能会有所帮助。
缺点是您将需要做更多的工作来保持DOM和脚本中的引用指向正确的对象。