Làm cách nào để thay thế InternalHTML của div bằng jQuery?


1017

Làm thế nào tôi có thể đạt được những điều sau đây:

document.all.regTitle.innerHTML = 'Hello World';

Sử dụng jQuery, regTitleID div của tôi ở đâu?

Câu trả lời:



320

Hàm html () có thể lấy các chuỗi HTML và sẽ sửa đổi hiệu quả thuộc .innerHTMLtính.

$('#regTitle').html('Hello World');

Tuy nhiên, hàm text () sẽ thay đổi giá trị (text) của phần tử đã chỉ định, nhưng vẫn giữ htmlcấu trúc.

$('#regTitle').text('Hello world'); 

12
"nhưng giữ cấu trúc html". bạn có thể giải thích?
Anoop Joshi

10
Từ tài liệu API jQuery ( api.jquery.com/text ), text()khác với : Unlike the .html() method, .text() can be used in both XML and HTML documents.. Hơn nữa, theo stackoverflow.com/questions/1910794/ , , jQuery.html() treats the string as HTML, jQuery.text() treats the content as text.
Gorgsenegger


69

Thay vào đó, nếu bạn có một đối tượng jquery bạn muốn kết xuất thay vì nội dung hiện có: Sau đó, chỉ cần đặt lại nội dung và nối thêm mới.

var itemtoReplaceContentOf = $('#regTitle');
itemtoReplaceContentOf.html('');
newcontent.appendTo(itemtoReplaceContentOf);

Hoặc là:

$('#regTitle').empty().append(newcontent);

17
Nơi tốt để sử dụngitemtoReplaceContentOf.empty();
Kevin Panko

newcontentmột đối tượng jQuery? Điều này không rõ ràng.
bộ

@kmoser Trong ví dụ đầu tiên, newcontent thực sự là một đối tượng jquery. Trong ví dụ thứ hai nó có thể được loại htmlStringhoặc Elementhoặc Texthoặc Arrayhoặc jQuerytheo api.jquery.com/append
Cine

27

Đây là câu trả lời của bạn:

//This is the setter of the innerHTML property in jQuery
$('#regTitle').html('Hello World');

//This is the getter of the innerHTML property in jQuery
var helloWorld = $('#regTitle').html();

11

Câu trả lời:

$("#regTitle").html('Hello World');

Giải trình:

$tương đương với jQuery. Cả hai đều đại diện cho cùng một đối tượng trong thư viện jQuery. Dấu "#regTitle"ngoặc đơn bên trong được gọi là bộ chọn được thư viện jQuery sử dụng để xác định (các) phần tử nào của html DOM (Mô hình đối tượng tài liệu) mà bạn muốn áp dụng mã. Các #trước khi regTitleđược nói jQuery mà regTitlelà id của một phần tử trong DOM.

Từ đó, ký hiệu dấu chấm được sử dụng để gọi hàm html thay thế html bên trong bằng bất kỳ tham số nào bạn đặt ở giữa dấu ngoặc đơn, trong trường hợp này là 'Hello World'.


11

Đã có câu trả lời đưa ra cách thay đổi HTML bên trong của phần tử.

Nhưng tôi sẽ đề nghị, bạn nên sử dụng một số hình ảnh động như Fade Out / Fade In để thay đổi HTML, điều này mang lại hiệu quả tốt khi thay đổi HTML thay vì ngay lập tức thay đổi HTML bên trong.

Sử dụng hình ảnh động để thay đổi HTML bên trong

$('#regTitle').fadeOut(500, function() {
    $(this).html('Hello World!').fadeIn(500);
});

Nếu bạn có nhiều hàm cần cái này, thì bạn có thể gọi hàm chung làm thay đổi Html bên trong.

function changeInnerHtml(elementPath, newText){
    $(elementPath).fadeOut(500, function() {
        $(this).html(newText).fadeIn(500);
    });
}

11

bạn có thể sử dụng chức năng html hoặc văn bản trong jquery để đạt được nó

$("#regTitle").html("hello world");

HOẶC LÀ

$("#regTitle").text("hello world");

9

jQuery .html()có thể được sử dụng để thiết lập và nhận nội dung của các phần tử không trống ( innerHTML).

var contents = $(element).html();
$(element).html("insert content into element");

Dấu ngoặc mở và đóng sau khi html đã lưu tôi. Vì vậy, hãy nhớ rằng hai người đó là quan trọng.
Gellie Ann

9

Thí dụ

$( 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>



3

Chỉ cần thêm một số hiểu biết hiệu suất.

Vài năm trước tôi có một dự án, nơi chúng tôi gặp vấn đề khi cố gắng đặt một HTML / Văn bản lớn thành các yếu tố HTML khác nhau.

Nó xuất hiện, rằng "tái tạo" phần tử và đưa nó vào DOM nhanh hơn bất kỳ phương thức được đề xuất nào để cập nhật nội dung DOM.

Vì vậy, một cái gì đó như:

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>

Sẽ giúp bạn có một hiệu suất tốt hơn. Gần đây tôi đã cố gắng đo lường điều đó (các trình duyệt nên thông minh trong những ngày này), nhưng nếu bạn đang tìm kiếm hiệu suất thì có thể giúp ích.

Nhược điểm là bạn sẽ có nhiều công việc hơn để giữ DOM và các tham chiếu trong các tập lệnh của bạn trỏ đến đúng đối tượng.


3

jQuery có một vài hàm hoạt động với văn bản, nếu bạn sử dụng text()một hàm, nó sẽ thực hiện công việc cho bạn:

$("#regTitle").text("Hello World");

Ngoài ra, bạn có thể sử dụng html()thay thế, nếu bạn có bất kỳ thẻ html nào ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.