帮助我理解DOM中的对象

时间:2009-11-12 20:51:11

标签: javascript dom object

我对DOM对象有疑问。

我所学到的是文档中的所有内容都是对象?

<form name="myform" action="script.js">
    <input type="text">type something</input>
</form>

如果我们查看示例,form是一个具有属性nameaction的对象吗?

但是nameaction本身也是对象吗?我不太了解对象和属性之间的区别。

对象元素和节点之间有什么区别?

我知道html,css,javascript和dom的基础知识。但有人可以在这里为我描述这些部分如何相互沟通。

因为有太多的元素,属性和方法。所以我都失去了

5 个答案:

答案 0 :(得分:7)

这篇文章是开始学习DOM的好地方。

http://w3schools.com/htmldom/default.asp

答案 1 :(得分:4)

在我看来,你的麻烦并不是理解面向对象编程背后的概念。 JavaScript是一种面向对象的语言。您应该选择quick tour of the concepts

简而言之,对象是一种封装数据(您所指的“属性”)和功能(您可以要求对象执行的“方法”或“函数”)的方法。

对于JavaScript DOM,有一个对象树,其中每个对象包含属于它们自身的对象。因此,您可以拥有一个Form对象,其中包含onSubmit()等方法和“elements”之类的属性,这是一个表单字段数组。数组中的每个元素都是另一个对象,可能是TextField对象或Checkbox。

所以现在你知道了对象。关于对象的一件事是它们可以从父类对象继承属性。例如,在JavaScript中,有一个Element类,每个表单字段对象都是Element类的“子类”的实例。因此,由于Element定义了“name”属性,而TextField和Checkbox以及他们所有的朋友都继承自Element,所以他们都自动拥有这个“name”属性。

术语“节点”是指树或图结构中的特定位置。在这种情况下,DOM(文档对象模型)定义允许作为表示网页的树中的节点的对象类型。对于您访问的每个网页,浏览器构造一个“DOM树”,它是表示网页中每个元素的对象的大树。

请注意,HTML自然采用树状结构:html标记包含头部和主体,head标记包含title,meta和script标记,meta标记包含名称和内容等属性。所有这一切都由浏览器安排到一个对象树中, 是你在使用JavaScript进行DOM编程时所操作的。

所以回顾一下:对象是JavaScript中数据和功能的基本表示。元素是特定的对象类,它们是“Element”类的子类,它们代表某种形式字段。这些可以在form.elements数组中找到,它是表单对象的一个​​属性。最后,节点是构成网页的标签,文本,脚本和其他对象树中的点。

希望它有所帮助!

答案 2 :(得分:2)

我以前曾教过人们关于DOM的知识,并发现看到了DOM。

如果你没有它,就去找萤火虫吧。 http://getfirebug.com/

当然你重新启动Firefox ...

打开任何网页并右键点击某些内容,会有一个名为“Inspect Element”的选项。这将显示页面的呈现代码。当我说渲染后,我指的是任何javascript修改后的页面,不同于标准源代码,它只是从服务器发送的直接HTML。

您正在检查的元素将突出显示。现在,右键单击该突出显示的元素,然后选择“在DOM选项卡中检查”。

进入DOM选项卡后,会显示您检查过的元素的所有属性。在这里,您可能会看到元素的属性,如type =“input”,元素的方法如focus(),可能是自定义原型,Firefox专有属性等等。

以下是您需要知道列表的一些方法,功能和属性,请在Mozilla开发人员中心查看。花一些时间编写脚本,让你围绕DOM移动并允许你使用这些来改变它,不要使用innerHTML来做任何事情。

  • 的createElement
  • 一个createTextNode
  • 的appendChild
  • 的insertBefore
  • removeChild之
  • cloneNode
  • 的setAttribute
  • 的removeAttribute
  • 的getElementById
  • 的getElementsByTagName
  • 的childNodes
  • 则firstChild
  • lastChild
  • nextSibling
  • hasChildNodes
  • 的tagName
  • attachEvent(IE)/ addEventListener(所有其他人)
  • detachEvent(IE)/ removeEventListener(所有其他人)

答案 3 :(得分:1)

  

HTML属性公开为   元素对象的属性。

Element = object,property = attribute。方法只是一个可调用的属性,例如onclick。

<form
onsubmit="alert('hi');"
id="contact-form"
>

onsubmit是一种方法,id是一个属性,form是一个节点类型为1的节点,这意味着它是一个HTMLElement并继承了通用的HTML属性。

答案 4 :(得分:0)

在您的示例中,名称和操作是表单对象的属性。 如果你在JSP页面中有这样的东西

<form name="frm" action="somepage.jsp" onSubmit=" return validateForm();">
  <input type="text" name="txtField" id="txtField"></input>
  <input type="submit" value="submit"></input>
</form>

和js函数定义,以便检查是否有任何文本输入到文本框中。

<script>
  function validateForm(){
    if(document.frm.txtField.value="")
       return false;
    else
       return true;
  }
 </script>

您可以使用文档对象访问dom中的表单对象,并从该访问权限访问表单所持有的输入元素。