我对DOM对象有疑问。
我所学到的是文档中的所有内容都是对象?
<form name="myform" action="script.js">
<input type="text">type something</input>
</form>
如果我们查看示例,form
是一个具有属性name
和action
的对象吗?
但是name
和action
本身也是对象吗?我不太了解对象和属性之间的区别。
对象元素和节点之间有什么区别?
我知道html,css,javascript和dom的基础知识。但有人可以在这里为我描述这些部分如何相互沟通。
因为有太多的元素,属性和方法。所以我都失去了
答案 0 :(得分:7)
这篇文章是开始学习DOM的好地方。
答案 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来做任何事情。
答案 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中的表单对象,并从该访问权限访问表单所持有的输入元素。