Наведені нижче приклади стосуються наступного фрагмента 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>.
// => "
Це частина специфікації розбору та серіалізації DOM W3C . Зауважте, що це властивість Element
об'єктів.
node.innerText
Встановлює або отримує текст між початковим і кінцевим тегами об'єкта
x.innerText
// => "Warning: This element contains code and strong language."
innerText
була представлена корпорацією Майкрософт і деякий час не підтримувалась Firefox. У серпні 2016 року innerText
був прийнятий WHATWG і був доданий до 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
- Не викликає поповнення (тому ефективніше)
- Властивість
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, нетривіальна.