วิธีแทนที่ innerHTML ของ div โดยใช้ jQuery


1017

ฉันจะบรรลุสิ่งต่อไปนี้ได้อย่างไร:

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

ใช้ jQuery regTitleID div ของฉันอยู่ที่ไหน

คำตอบ:



320

HTML ()ฟังก์ชั่นสามารถใช้สายของ HTML และมีประสิทธิภาพจะปรับเปลี่ยน.innerHTMLคุณสมบัติ

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

อย่างไรก็ตามฟังก์ชันtext ()จะเปลี่ยนค่า (text) ขององค์ประกอบที่ระบุ แต่เก็บhtmlโครงสร้างไว้

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

12
"แต่ให้โครงสร้าง html" คุณสามารถอธิบาย?
Anoop Joshi

10
จากเอกสาร jQuery API ( api.jquery.com/text ) จะแตกต่างกันดังนี้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 ,
Gorgsenegger


69

หากคุณมีวัตถุ jquery แทนคุณต้องการแสดงผลแทนเนื้อหาที่มีอยู่: จากนั้นเพียงรีเซ็ตเนื้อหาและผนวกใหม่

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

หรือ:

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

17
สถานที่ที่ดีในการใช้itemtoReplaceContentOf.empty();
Kevin Panko

คือnewcontentเป็นวัตถุ jQuery? ยังไม่ชัดเจน
kmoser

@kmoser ในตัวอย่างแรก newcontent ย่อมเป็นวัตถุ jquery ในตัวอย่างที่สองก็สามารถเป็นชนิดhtmlStringหรือElementหรือTextหรือArrayหรือjQueryตามapi.jquery.com/append
Cine


11

ตอบ:

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

คำอธิบาย:

$jQueryเทียบเท่ากับ ทั้งสองแสดงถึงวัตถุเดียวกันในไลบรารี jQuery "#regTitle"ในวงเล็บที่เรียกว่าตัวเลือกซึ่งถูกใช้โดยห้องสมุด jQuery ที่จะระบุว่าองค์ประกอบ (s) ของ HTML DOM (Document Object Model) ที่คุณต้องการที่จะใช้รหัส #ก่อนที่regTitleจะบอกว่า jQuery regTitleคือรหัสขององค์ประกอบภายใน DOM

จากนั้นสัญกรณ์จุดจะใช้ในการเรียกhtml ที่ฟังก์ชั่นซึ่งแทนที่ HTML 'Hello World'ภายในกับสิ่งที่คุณวางพารามิเตอร์ในระหว่างวงเล็บซึ่งในกรณีนี้คือ


11

มีคำตอบที่ให้วิธีการเปลี่ยน HTML ภายในขององค์ประกอบ

แต่ฉันขอแนะนำคุณควรใช้แอนิเมชันเช่น Fade Out / Fade In เพื่อเปลี่ยน HTML ซึ่งให้ผลดีกับ HTML ที่เปลี่ยนไปแทนที่จะเปลี่ยน HTML ภายในทันที

ใช้ภาพเคลื่อนไหวเพื่อเปลี่ยน Inner 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);
    });
}

11

คุณสามารถใช้ฟังก์ชัน html หรือ text ใน jquery เพื่อให้บรรลุ

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

หรือ

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

9

jQuery's .html()สามารถใช้สำหรับการตั้งค่าและรับเนื้อหาขององค์ประกอบที่ไม่ว่างเปล่าที่ตรงกัน ( innerHTML)

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

วงเล็บเปิดและปิดหลังจาก html บันทึกฉัน ดังนั้นจำไว้ว่าคนสองคนนี้มีความสำคัญ
Gellie Ann



3

เพียงเพื่อเพิ่มความเข้าใจด้านประสิทธิภาพ

ไม่กี่ปีที่ผ่านมาฉันมีโครงการที่เรามีปัญหาในการพยายามตั้งค่า 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 และการอ้างอิงในสคริปต์ของคุณที่ชี้ไปยังวัตถุที่ถูกต้อง


3

jQuery มีฟังก์ชั่นบางอย่างที่ทำงานกับข้อความได้ถ้าคุณใช้text()มันจะทำงานให้คุณ:

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

นอกจากนี้คุณสามารถใช้html()แทนหากคุณมีแท็ก htmlใด ๆ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.