Javascript html content div

.inner H T M L

Свойство inner H T M L позволяет считать содержимое элемента в виде HTML-строки или установить новый HTML.

Новое значение HTML необходимо передавать в виде строки и оно заменит текущее содержимое элемента. При передаче невалидной HTML-строки будет выброшена ошибка. HTML-строкой является строка, которая содержит валидную HTML-разметку, в inner H T M L нельзя передать DOM-элемент.

Пример

Скопировать ссылку «Пример» Скопировано

     
Введите логин
form> label>Логинlabel> input type="text" id="login" /> div class="error">Введите логинdiv> form>
 const form = document.querySelector('form') console.log(form.innerHTML)// '
Введите логин
'
// Меняем содержимое новым htmlform.innerHTML = '
Вход выполнен
'
const form = document.querySelector('form') console.log(form.innerHTML) // '
Введите логин
'
// Меняем содержимое новым html form.innerHTML = '
Вход выполнен
'
   
Вход выполнен
form> div class="success">Вход выполненdiv> form>

Как понять

Скопировать ссылку «Как понять» Скопировано

Браузер предоставляет разработчику возможность управлять содержимым на странице и менять его как угодно. inner H T M L – самый простой способ считать или изменить HTML-содержимое элемента. Это свойство использует строки, что даёт возможность легко менять и очищать содержимое элементов.

Когда в inner H T M L присваивается новое значение, все предыдущее содержимое удаляется и создаётся новое, что приводит к перерисовке страницы.

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Обращение к свойству inner H T M L вернёт содержимое элемента в виде HTML-строки. Просмотреть или изменить содержимое можно у всех элементов, включая и . Присвоение нового значения к свойству очистит всё текущее содержимое и заменит его новым HTML.

 document.body.innerHTML = 'Hello Inner HTML!' document.body.innerHTML = 'Hello Inner HTML!'      

В результате в документ будет вставлен HTML:

 

Hello Inner HTML!

h1>Hello Inner HTML!h1>

Стоит помнить, что строка с HTML-разметкой это не DOM-элемент. inner H T M L работает только со строками, самостоятельно разбирает её содержимое и создаёт элементы.

 const divEl = document.createElement('div') // document.body.innerHTML = divEl const divEl = document.createElement('div') // document.body.innerHTML = divEl     

Так как в div El находится объект DOM-элемента, то при присвоении в inner H T M L он приведётся к строке, в результате в элемент вставится строка » [ object H T M L Div Element ] » .

 [object HTMLDivElement] body>[object HTMLDivElement]body>      

Если передать в inner H T M L строку с невалидным HTML, то будет выброшена ошибка. Однако большинство современных браузеров помогают разработчику, умеют самостоятельно дополнять разметку (например если забыли закрыть тег) и даже дают возможность для кастомных тегов. Потому встретить ошибку при передаче в inner H T M L невалидного HTML очень сложно.

Несмотря на то, что с помощью inner H T M L вставить любой HTML, есть некоторые ограничения, связанные с безопасностью веб-приложений.

Так же не рекомендуется использовать inner H T M L , если нужно просто изменить текст в элементе. Для этой задачи есть свойство inner Text или text Content .

 // Скрипт станет частью body, но не выполнитсяdocument.body.innerHTML = '' // После вставки в html картинка не загрузится и тогда сработает код из onerrordocument.body.innerHTML = ' ' // Скрипт станет частью body, но не выполнится document.body.innerHTML = '' // После вставки в html картинка не загрузится и тогда сработает код из onerror document.body.innerHTML = ' '      

Источник

Получение и установка контента элементам в JavaScript

На этом уроке мы рассмотрим свойства, предназначенные для работы с текстовым содержимым элемента ( textContent , innerText , outerText ) и свойства, предназначенные для работы с HTML содержимым элемента ( innerHTML , outerHTML ).

Свойство textContent и как оно работает

textContent – это свойство, которое предназначено для работы с текстовым контентом элемента. Оно позволяет его как получить (включая текстовое содержимое всего его потомков), так и установить.

// $elem – некоторый DOM-элемент // получим текстовый контент $elem const text = $elem.textContent; // установим текстовый контент $elem: $elem.textContent = 'Некоторый текст. ';

Примеры с textContent

1. При получении текста элемента, содержащего один текстовый узел, textContent возвратит текст, находящийся внутри этого текстового узла.

Как в JavaScript получить текстовое содержимое элемента, содержащего один текстовый узел

Некоторый текст

2. Для элемента, который содержит множество других узлов, textContent вернёт конкатенацию (сложение) текстов всех его текстовых узлов.

Использование textContent для получения текстового контента элемента, содержащего множество других узлов

Внимание! Это очень важный текст.

В этом примере текстовые узлы обозначены цифрами. textContent вернёт сложение текстов этих текстовых узлов.

3. При получении textContent у document , оно возвратит null :

const text = document.textContent; // null

При установке элементу текстового содержимого, textContent удалит всего его узлы (при их наличии), и добавит в него один текстовый узел, содержащий указанный текст.

4. Например, установим элементу #message новое текстовое содержимое:

 
Внимание!

Это очень важный текст.

После установки $elem текстового контента, он будет выглядеть следующим образом:

JavaScript - Установка элементу текстового содержимого с помощью свойства textContent

5. Например, создадим элемент « div.alert », вставим в него некоторый текст и добавим его на страницу перед закрывающим тегом body :

// создадим элемент const $alert = document.createElement('div'); // добавим к $alert класс alert $alert.className = 'alert'; // установим $alert текстовый контент $alert.textContent = 'Некоторый текст. '; // вставим на страницу перед document.body.appendChild($alert);

6. Если присвоить textContent строку, содержащую HTML код, то символы < и >будут заменены соответственно на < и > .

$elem.textContent = '

.

'; const text = $elem.textContent; // "<p>. </p>"

innerText, outerText и их отличие от textContent

innerText также как textContent используется для извлечения текста из элементов.

Но innerText в отличие от textContent как бы копирует текст, отображаемый этим элементом в браузере . Он учитывает стили, применённые к элементу (отображается элемент или нет). Когда элемент скрыт, innerText не включает его текстовый контент в возвращаемые данные.

Кроме этого, innerText не добавляет в возвращаемый результат содержимое style и script .

При установке элементу текстового контента, innerText также как textContent удаляет все имеющиеся в нём узлы и создаёт новый текстовый узел с указанным содержимым.

Синтаксис свойства innerText :

// получим текстовый контент $elem const text = $elem.innerText; // зададим $elem текстовый контент $elem.innerText = 'Новый текст. ';

Пример , в котором показана разница между innerText и textContent :

Внимание! Это очень важный текст.

Из примера видно, что innerText не включает в возвращаемые данные контент элемента script .

В этом примере мы ещё дополнительно удалим отображение элемента span из документа, т.е. установим ему « display: none »:

  
Внимание! Это очень важный текст.

Таким образом innerText учитывает стили элементов, и возвращает только текст отображаемый этим элементом в браузере.

Использование JavaScript свойства innerText для получения текстового контента элемента

outerText

Ещё в DOM API у элементов имеется свойство outerText . Оно возвращает текстовое содержимое элемента аналогично свойству innerText .

Синтаксис свойства outerText :

// получим текстовый контент $elem const text = $elem.outerText; // установим $elem текстовый контент $elem.outerText = 'Текстовый контент. ';

Его отличие от innerText только в том, что outerText при установки элементу текстового контента удаляет не только всё его содержимое, но и сам этот элемент и помещает на этом месте новый текстовый узел с заданным текстом.

Например , заменим все элементы img на текст ‘Здесь было изображение’ :

 
.
.
.

innerHTML и outerHTML

innerHTML предназначен для установки или получения HTML разметки элемента.

// получим HTML содержимое $elem const html = $elem.innerHTML; // установим $elem новый HTML $elem.innerHTML = '. ';

Например, установим элементу ul#list новое HTML содержимое:

Пример, в котором получим HTML разметку некоторого элемента:

Я люблю JavaScript! Он позволяет сделать что угодно со страницей.

Задание HTML содержимого элементу с помощью innerHTML всегда сопровождается удалением его контента и установкой ему новой HTML разметки, но основе указанной строки, которая была разобрана внутренним парсером браузера как HTML.

Начинающие веб-разработчики при написании такого кода полагают что он добавит только указанную HTML разметку в конец содержимого $someElem :

Но на самом деле это не так. Этот код выполняет следующее:

  1. получает текущее содержимое $someElem , т.е. HTML-строку, к которой прибавляет ещё одну строку
    .

    ;

  2. очищает всё что есть в $someElem ;
  3. устанавливает $someElem HTML, полученный в результате разбора результирующей строки.

Эквивалентная запись кода, приведённого выше:

let html = $someElem.innerHTML; html = html + '
.
'; $someElem.innerHTML = html;

Таким образом, используя такую запись мы не просто добавляем некоторый HTML в конец элемента, а полностью переустанавливаем его. Выполнение такого кода обычно сопровождается «миганием».

Поэтому, в ситуациях, когда вам нужно просто добавить некоторый фрагмент HTML разметки в некоторый элемент лучше воспользоваться, например, методом insertAdjacentHTML .

Пример использования innerHTML для очистки содержимого элемента:

Например, получить и изменить HTML контент элемента р с id=»myP» :

var myP = document.getElementById("myP"); //получить HTML содержимое элемента, имеющего myP.innerHTML; //изменить HTML содержимое элемента, имеющего myP.innerHTML = "Что-то новое";

Например, удалить HTML контент элемента p , имеющего id=»demo» :

document.getElementById("demo").innerHTML = "";

Javascript - свойства innerHTML и outerHTML Javascript - работа со свойствами innerHTML и outerHTML

outerHTML

Свойство outerHTML устанавливает или возвращает HTML контент, представляющий сам элемент и его дочерние элементы.

Например, получить и изменить HTML контент списка ul , имеющего id=»myList» :

Задания

  1. Напишите сценарий, который изменит содержимое всех элементов p в документе.
  2. Напишите сценарий, который заменит HTML содержимое элемента body на другое. Условием для запуска сценария является время, равное 5 секундам, которое прошло с момента полной загрузки страницы.

Источник

Читайте также:  Лучшие версии майнкрафт java
Оцените статью