Могу ли я использовать setAttribute для установки html-значения div, например, $ ('# div'). Html ("value"); - PullRequest
2 голосов
/ 15 июля 2011

Я не могу использовать базовый $ ('# div'). Html ("value");изменить текст div, как я привык.Вместо этого я пытаюсь использовать div.setAttribute (...).Есть ли способ установить "html", используя его?

Извините за вопрос noob, я еще не научился манипулировать своими div'ами таким образом.

Ответы [ 5 ]

4 голосов
/ 15 июля 2011

Если у вас есть элемент DOM, а не объект jQuery, вы бы использовали .innerHTML.

div.innerHTML = 'new value';

Если вам нужно добавить контент, вы можете технически использовать:

div.innerHTML += 'new value';

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

Лучше было бы создать элемент, добавить к нему свой контент, используя .innerHTML,затем добавьте потомков нового элемента.

var temp_div = document.createElement('div');

temp_div.innerHTML = 'some new content';

while( temp_div.firstChild ) {
    div.appendChild( temp_div.firstChild );
}
1 голос
/ 15 июля 2011

Если вы хотите скопировать html() jQuery, вы можете использовать div.innerHTML

1 голос
/ 15 июля 2011

Вы можете сделать это старомодным способом, используя innerHTML :

document.getElementById('mydiv').innerHTML = 'mytext';
1 голос
/ 15 июля 2011

Попробуйте:

div.innerHTML = "New text!";

http://www.w3schools.com/htmldom/dom_using.asp

Вы также можете сделать innerText

1 голос
/ 15 июля 2011

Нет, вы не можете установить html-содержимое DIV с помощью setAttribute, поскольку в элементе DIV нет html-атрибута. Почему вы не можете использовать .html ()?

В качестве альтернативы вы также можете рассмотреть следующее:

http://api.jquery.com/text/

...