在语句中分配getElementById()返回的HTML元素对象的属性?

时间:2015-09-23 05:50:30

标签: javascript jquery html oop

这是一个对我有意义的陈述

var x = object.function();

变量x的值等于对象函数的返回值。

var y = object.property;

变量y的值等于对象的属性。

但我不明白以下代码:

 document.getElementById("demo").innerHTML = "Paragraph changed!";

在上面,对象document正在调用ITS方法getElementById()。哪个返回一个调用ITS对象属性demo的HTML对象innerHTML?这是对的吗?

这是一个令人困惑的陈述......

<button onclick="getElementById('demo').innerHTML=Date()">What is the time?</button>

在上面的代码中,innerHTML属性是否属于HTML Object Element演示?如果是这样,那么getElementById()方法属于哪个对象?

对OOP和Javascript不熟悉我无法围绕object.function.property;语句的概念进行总结。或function.property;陈述。

4 个答案:

答案 0 :(得分:0)

getElementById()方法属于document对象。

答案 1 :(得分:0)

在javascript中,如果您愿意,每个函数/代码块都在范围或上下文中执行。该范围由关键字this引用。因此,当您尝试访问某个变量或调用某个函数时,应该在该范围内声明它,否则在全局范围内查找它,即window对象。当您按照指定的方式分配onclick处理程序时,javascript块getElementById('demo').innerHTML=Date()的范围将是按钮本身,它属于文档,其中指定了函数getElementById。因此,您正在调用getElementById对象指定的函数document,就像在前面的示例中一样,而不是将它的innerHTML属性分配给新的字符串值创建了对象new Date()

但是,正确的实现应该如下所示(假设您使用的是jQuery)

// Call the function after the DOM is ready
$(function() {
   // Find the button on the page
   $("button")
       .click(function() {     // Assign the handle for the click event
          // Finds the div on the page and assign its innerHTML
          $("#demo")[0].innerHTML = new Date();
       });
})

答案 2 :(得分:0)

document.getElementById(&#34; demo&#34;)是DOM对象引用的Dom元素, innerHTML 是该对象的属性。

答案 3 :(得分:0)

考虑一下

var x = object.function();

其中,在您的问题中等同于

var DOMObject = document.getElementById("demo"); // ----------- (1)

现在,这个

var y = object.property;

你问题中的

相当于

var InnerHtml = DOMObject.innerHTML; // ----------- (From 1)

所以,在一天结束时,

document.getElementById("demo").innerHTML = "Paragraph changed!";

只是一种简单的做法

var DOMObject = document.getElementById("demo");
DOMObject.innerHTML = "Paragraph changed!";