Odpowiedzi:
Funkcja html () może pobierać ciągi HTML i skutecznie modyfikuje .innerHTMLwłaściwość.
$('#regTitle').html('Hello World');
Jednak funkcja text () zmieni wartość (text) określonego elementu, ale zachowa htmlstrukturę.
$('#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();
newcontentjest obiektem jQuery? To nie jest jasne.
htmlStringlub Elementlub Textlub Arraylub jQueryzgodnie 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 regTitlemówi jQuery który regTitlejest 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.