Odpowiedzi:
Funkcja html () może pobierać ciągi HTML i skutecznie modyfikuje .innerHTML
właściwość.
$('#regTitle').html('Hello World');
Jednak funkcja text () zmieni wartość (text) określonego elementu, ale zachowa html
strukturę.
$('#regTitle').text('Hello world');
text()
różni się: Unlike the .html() method, .text() can be used in both XML and HTML documents.
. Ponadto, zgodnie z stackoverflow.com/questions/1910794/... , jQuery.html() treats the string as HTML, jQuery.text() treats the content as text
.
Jeśli zamiast tego masz istniejący obiekt jquery, który chcesz wyrenderować: Po prostu zresetuj zawartość i dodaj nową.
var itemtoReplaceContentOf = $('#regTitle');
itemtoReplaceContentOf.html('');
newcontent.appendTo(itemtoReplaceContentOf);
Lub:
$('#regTitle').empty().append(newcontent);
itemtoReplaceContentOf.empty();
newcontent
jest obiektem jQuery? To nie jest jasne.
htmlString
lub Element
lub Text
lub Array
lub jQuery
zgodnie api.jquery.com/append
Odpowiedź:
$("#regTitle").html('Hello World');
Wyjaśnienie:
$
jest równoważne z jQuery
. Oba reprezentują ten sam obiekt w bibliotece jQuery. "#regTitle"
Wewnątrz nawiasu nazywany jest selektor , który jest wykorzystywany przez bibliotekę jQuery zidentyfikować, który element (y) HTML DOM (Document Object Model), który chcesz zastosować do kodu. #
Przed regTitle
mówi jQuery który regTitle
jest identyfikatorem elementu wewnątrz DOM.
Stamtąd notacja kropkowa służy do wywołania funkcji html, która zastępuje wewnętrzny html dowolnym parametrem umieszczonym pomiędzy nawiasami, którym jest w tym przypadku 'Hello World'
.
Istnieją już odpowiedzi, które podają, jak zmienić wewnętrzny HTML elementu.
Proponuję jednak użyć animacji, takich jak Zanikanie / Zanikanie, aby zmienić HTML, co daje dobry efekt zmienionego HTML, a raczej natychmiastową zmianę wewnętrznego HTML.
$('#regTitle').fadeOut(500, function() {
$(this).html('Hello World!').fadeIn(500);
});
Jeśli masz wiele funkcji, które tego potrzebują, możesz wywołać funkcję wspólną, która zmienia wewnętrzny HTML.
function changeInnerHtml(elementPath, newText){
$(elementPath).fadeOut(500, function() {
$(this).html(newText).fadeIn(500);
});
}
w tym celu możesz użyć funkcji HTML lub tekstu w jquery
$("#regTitle").html("hello world");
LUB
$("#regTitle").text("hello world");
jQuery .html()
może być używany do ustawiania i pobierania zawartości dopasowanych niepustych elementów ( innerHTML
).
var contents = $(element).html();
$(element).html("insert content into element");
Przykład
$( 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>
$("#regTitle")[0].innerHTML = 'Hello World';
Aby dodać kilka informacji o wydajności.
Kilka lat temu miałem projekt, w którym mieliśmy problemy z ustawieniem dużego HTML / tekstu na różne elementy HTML.
Okazało się, że „odtworzenie” elementu i wstrzyknięcie go do DOM było znacznie szybsze niż którakolwiek z sugerowanych metod aktualizacji zawartości DOM.
Więc coś takiego:
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>
Powinien zapewnić lepszą wydajność. Nie próbowałem tego ostatnio mierzyć (obecnie przeglądarki powinny być sprytne), ale jeśli szukasz wydajności, może to pomóc.
Minusem jest to, że będziesz mieć więcej pracy, aby utrzymać DOM i odwołania w skryptach wskazujące właściwy obiekt.