2015-06-11 2 views
-4

Почему мы не можем использовать свойство text для изменения элемента, вместо этого мы должны использовать свойство innerHTML?Почему мы не можем использовать свойство text для изменения элемента?

Это не работает:

h1.text = "The Title"; 

И это работает:

h1.innerHTML = "The title"; //It's worked; 
+0

Я рекомендую изучить основы javascript и DOM без каких-либо фреймворков (например, JQuery). – jazZRo

+0

Благодарим за совет. –

ответ

2

Вы спутать родной DOM API с API JQuery.


Чтобы задать текст

JQuery

$elem.text("foo"); 

DOM API

elem.textContent = "foo"; 

Для того, чтобы установить HTML

JQuery

$elem.html("<p>foo</p>"); 

DOM API

elem.innerHTML = '<p>foo</p>'; 

Использование DOM API, вы можете также использовать textNode, чтобы добавить текст к элементу.

var p = document.createElement("p"); 
var text = document.createTextNode("foo"); 
p.appendChild(text); 
//=> <p>foo</p> 
+0

Спасибо. И почему я могу запустить: h1.text = «Заголовок» в chrome dev, и получить строковое значение. –

+0

@GeXiaoxiong, когда вы делаете 'var a = {}; a.text = "title"; 'return value is' "title". Это не означает, что Chrome фактически устанавливает textContent элемента 'h1'; это просто возвращаемое значение выражения javascript-присваивания. – naomik

+0

Очистить! Спасибо. –

0

".text" не поддерживается в JavaScript, нет собственности в JS

и библиотеки JQuery обратитесь в Funtion называется HTML (argu) управлять innerHTML из JavaScript

и HERE вы можете получить базовые знания о DOM

0

вы использовали этот h1.innerHTML = "Hello world!" если вы используете РЖ avascript. В противном случае $("h1").text("Hello world!"); если вы использовали JQuery.

+0

jQuery ___is___ JavaScript. И нет, 'innerHTML' и' .text() 'не совсем сопоставимы. – Cerbrus

+0

Извините. Библиотека JQuery. –

+1

Не совсем корректно ... jQuery - это библиотека JavaScript. – Cerbrus

Смежные вопросы