ตัวอย่างด้านล่างอ้างถึงตัวอย่าง HTML ต่อไปนี้:
<div id="test">
Warning: This element contains <code>code</code> and <strong>strong language</strong>.
</div>
โหนดจะถูกอ้างอิงโดย JavaScript ต่อไปนี้:
var x = document.getElementById('test');
element.innerHTML
ตั้งค่าหรือรับไวยากรณ์ HTML ที่อธิบายถึงการสืบทอดขององค์ประกอบ
x.innerHTML
// => "
// => Warning: This element contains <code>code</code> and <strong>strong language</strong>.
// => "
นี้เป็นส่วนหนึ่งของ W3C ของDOM แยกและเป็นอันดับจำเพาะ โปรดทราบว่ามันเป็นคุณสมบัติของElement
วัตถุ
node.innerText
ตั้งค่าหรือรับข้อความระหว่างแท็กเริ่มต้นและแท็กสิ้นสุดของวัตถุ
x.innerText
// => "Warning: This element contains code and strong language."
innerText
ได้รับการแนะนำโดย Microsoft และไม่ได้รับการสนับสนุนในขณะที่ Firefox ในเดือนสิงหาคมปี 2559 WHATWGinnerText
ได้รับการรับรองและถูกเพิ่มเข้าใน Firefox ใน v45
innerText
ช่วยให้คุณตระหนักถึงรูปแบบการแสดงข้อความที่พยายามจับคู่สิ่งที่เบราว์เซอร์แสดงผลหมายความว่า
innerText
ใช้text-transform
และwhite-space
กฎ
innerText
ตัดขอบช่องว่างระหว่างบรรทัดและเพิ่มตัวแบ่งบรรทัดระหว่างรายการ
innerText
จะไม่ส่งคืนข้อความสำหรับรายการที่มองไม่เห็น
innerText
จะกลับมาtextContent
สำหรับองค์ประกอบที่ไม่เคยแสดงเช่น<style />
และ `
- คุณสมบัติของ
Node
องค์ประกอบ
node.textContent
รับหรือตั้งค่าเนื้อหาข้อความของโหนดและการสืบทอด
x.textContent
// => "
// => Warning: This element contains code and strong language.
// => "
แม้ว่านี่จะเป็นมาตรฐาน W3Cแต่ก็ไม่รองรับ IE <9
- ไม่ทราบถึงการกำหนดสไตล์และดังนั้นจะส่งคืนเนื้อหาที่ซ่อนอยู่โดย CSS
- ไม่ก่อให้เกิด reflow (ดังนั้นจึงมีประสิทธิภาพมากกว่า)
- คุณสมบัติของ
Node
องค์ประกอบ
node.value
สิ่งนี้ขึ้นอยู่กับองค์ประกอบที่คุณกำหนดเป้าหมาย สำหรับตัวอย่างข้างต้นx
ส่งคืนวัตถุHTMLDivElementซึ่งไม่มีvalue
คุณสมบัติที่กำหนดไว้
x.value // => null
<input />
ตัวอย่างเช่นแท็กอินพุต ( ) กำหนดvalue
คุณสมบัติซึ่งอ้างอิงถึง "ค่าปัจจุบันในตัวควบคุม"
<input id="example-input" type="text" value="default" />
<script>
document.getElementById('example-input').value //=> "default"
// User changes input to "something"
document.getElementById('example-input').value //=> "something"
</script>
จากเอกสาร :
หมายเหตุ: สำหรับอินพุตบางประเภทค่าที่ส่งคืนอาจไม่ตรงกับค่าที่ผู้ใช้ป้อน ตัวอย่างเช่นหากผู้ใช้ป้อนค่าที่ไม่ใช่ตัวเลขลงในค่า<input type="number">
ที่ส่งคืนอาจเป็นสตริงว่างแทน
สคริปต์ตัวอย่าง
นี่คือตัวอย่างที่แสดงผลลัพธ์สำหรับ HTML ที่แสดงด้านบน:
var properties = ['innerHTML', 'innerText', 'textContent', 'value'];
// Writes to textarea#output and console
function log(obj) {
console.log(obj);
var currValue = document.getElementById('output').value;
document.getElementById('output').value = (currValue ? currValue + '\n' : '') + obj;
}
// Logs property as [propName]value[/propertyName]
function logProperty(obj, property) {
var value = obj[property];
log('[' + property + ']' + value + '[/' + property + ']');
}
// Main
log('=============== ' + properties.join(' ') + ' ===============');
for (var i = 0; i < properties.length; i++) {
logProperty(document.getElementById('test'), properties[i]);
}
<div id="test">
Warning: This element contains <code>code</code> and <strong>strong language</strong>.
</div>
<textarea id="output" rows="12" cols="80" style="font-family: monospace;"></textarea>
innerText
การใช้งานที่ไม่ได้มาตรฐานของ textContext โดย MSIE เป็นเรื่องไม่สำคัญ