2016-04-30 32 views
0

我对以下一段Javascript代码有疑问,它非常基本。HTML元素是否具有内置属性?

var elNote = document.getElementById('note'); 
    elNote.TextContent = 'Hello'; 

我是新来的Javascript和想知道这里发生了什么。我的书很可能会在稍后解释,但我想现在就去学习。

这是我的理解,elNote得到分配名为笔记的html元素。 我的问题是如果html元素内置属性,因为我们从元素注释中选择Property TextConent。这也是我的理解,元素如笔记,是NODES。 Javascript是否创建并“注入”属性到元素中以便它们可以被修改。我不知道,我真的在想怎么回事。谢谢。

+0

什么的textContent? –

+0

HTML元素* do *具有属性,是的。某些属性仅适用于某些元素类型,例如,只有表单字段具有'.value'属性。 – nnnnnn

回答

0

Javascript是一种松散类型的语言,它在定义DOM时将节点的属性和相关方法分配给节点,并且其属性根据浏览器和层次版本的不同而不同。 就TextContent而言,它被描述为here 这些属性是特定于节点类型的,如 文档它本身也是一个节点,但是它是顶级节点,它不包含像innerText等属性。 有关更多文档对象模型的深刻理解,请参阅本wiki

总结:

的W3C DOM和WHATWG DOM标准形成最现代的浏览器中实现的DOM的基础。许多浏览器都提供超出标准的扩展,因此在Web上使用它们时必须小心,因为各种浏览器可以使用不同的DOM访问文档。从this source复制它看起来像DOM是由浏览器以javascript 可读/可访问对象的形式定义的,它们的属性因浏览器而异。

+0

因此,这些属性和方法通过Javascript分配给节点,而不是来自DOM本身。换句话说,像getelementbyId方法是javascript方法不是方法吗?谢谢 –

+0

请有这[链接](https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/introduction .html)也 – Technacron

+0

我读了几页。所以如果我是正确的DOM是一种API。它定义了用于访问HTML元素的属性和方法。换句话说,getbyid方法是DOM的一种方法,而不是JavaScript。但JavaScript可以用它来存储和检索一些东西。它是否正确? –

0

是的,你可以使用例如:

elNote.textContent = 'Hello world'; // For raw text content 
elNote.innerHTML = '<h1>Hello</h1> world'; // For raw text content 
elNote.value = 123; // Tipically for <input> and <button> tags value