正在分配属性'由getElementById()在语句中返回的HTML元素对象的s

Assigning property's of HTML Element Objects returned by getElementById() in a statement?

本文关键字:返回 语句 元素 对象 HTML 属性 分配 getElementById      更新时间:2023-09-26

以下是一条对我来说有意义的语句

var x = object.function();

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

var y = object.property;

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

但我不理解以下代码:

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

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

这里有一个更令人困惑的说法

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

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

作为OOP和Javascript的新手,我无法完全理解object.function.property;语句的概念。或CCD_ 6语句。

getElementById()方法属于此处的document对象。

在javascript中,如果您愿意,每个函数/代码块都在范围或上下文中执行。关键字this引用了此范围。因此,当您尝试访问某个变量或调用某个函数时,应该在该范围内声明它,否则将在全局范围内查找它,即window对象。当您像指定的那样分配onclick处理程序时,javascript块getElementById('demo').innerHTML=Date()的作用域将是按钮本身,它属于指定了函数getElementById的文档。因此,您调用由document对象指定的函数getElementById,就像前面的示例一样,然后将其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();
       });
})

document.getElementById("demo"(是指DOM元素的DOM对象,而innerHTML则是该对象的属性。

考虑这个

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!";