现在来说说DOM
文档对象模型DOM(Document Object Model)定义访问和处理html文档的标准方法。DOM将html文档呈现为带有元素
 
,属性和文本的树结构(节点树)
先来看看下列代码
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>DOM</title>
</head>
<body>
   <h2><a href="http://www.baidu.com">javascript DOM</a></h2>
   <p>对HTML元素进行操作,可添加,改变或移除CSS样式等</p>
   <ul>
       <li>JavaScript</li>
       <li>DOM</li>
       <li>CSS</li>
   </ul>
</body>
</html>
html文档可以说由节点构成的集合,三种常见的DOM节点:
1.元素节点:如<html>、<body>、<p>等都是元素节点,即标签。
2.文本节点:向用户展示的内容,如<li>...</li>种的JavaScript、DOM、CSS等文本
3.属性节点:元素属性,如<a>标签的链接属性href="http://www.baidu.com"
看下面的代码:
<a href="http://www.baidu.com">JavaScript DOM</a>
这里面href="http://www.baidu.com"是属性节点 JavaScript DOM是文本节点
首先,通过ID获取元素
学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号
 
一样,只要通过身份证号就可以找到相对应的人,那么在网页中我们通过id先找到标签,然后进行操作。
语法:
document.getElementById("id")
今天晚上暂时更新到这里。。明天我继续更新。。。。。。

接上面的。下面继续:

下面来看看代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type
content="text/html;charset=gb2312">
<title>获取元素</title>
  <script type="text/javascript">
   var mye=document.getElementById("con");//获取元素存储在变量mye中
   document.write(mye);//输出变量mye
  </script>
</head>
 
<body>
   <h3>Hello</h3>
   <p id="con">I Love JavaScript</p>
</body>
</html>
结果:null或者[object HTMLParagraphElement]
注意:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。
innerHTML属性用于获取或替换HTML元素的内容
语法:
Object.innerHTML
注意:
1.Object是获取的元素对象,如通过document.getElementById("ID")获取的元素
2.注意书写,innerHTML区分大小写
我们通过id="con"获取<p>元素,并将元素的内容输出和改变元素内容,如下:
<!DOCTYPE HTML>
<html>
<head>
<title>innerHTML</title>
</head>
<body>
  <p id="con">Hello World!</p>
  <script>
    var mycon=document.getElementById("con");
    document.write("p标签原始内容:"+mycon.innerHTML+"<br>");
    //输入元素内容
    mycon.innerHTML="New text!"//修改p元素内容
    document.write("p标签修改后的内容为:"+mycon.innerHTML);
  </script>
</body>
</html>
注意!!!看清楚,这里的innerTHML是可以获取!还有!替换!的!既可以获取,
又可以替换!懂了没有!不要再询问为什么前面也可以得到原始内容!看清楚!
然后HTML DOM允许JavaScript改变HTML元素的样式,如何改变HTML元素的样式呢?
语法:
Object.style.property=new style;
注意:Object是获取的元素对象,如通过document.getElementById("id")获取的
元素。
属性表如下:
属性     描述
backgroundColor 设置元素背景色
height 设置元素高度
width 设置元素宽度
color 设置文本的颜色
font 在一行设置所有的字体属性
fontFamily 设置元素的字体系列
fontSize 设置元素的字体大小
注意:这个表只是一小部分的css样式属性,其他的样式也可以通过该方法设置和
修改。
看看下面代码:
改变<p>元素的样式,将颜色改为红色,字号改为20,背景色改为蓝色:
<p id="pcon">Hello World!</p>
<script>
  var kk=document.getElementById("pcon");
  kk.style.color="red";
  kk.style.fontSize="20";
  kk.style.backgroundColor="blue";
</script>
网页中擦很难过常会看到显示和隐藏的效果,可以通过display属性来设置
语法:
Object.style.display=value
注意:Object是获取的元素对象,如通过document.getElementById("id")获取的
元素。
value取值:
值      描述
none 此元素不会被显示(即隐藏)
block 此元素将显示为块级元素(即显示)
看下面代码:
<!DOCTYPE THML>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html,charset=gb2312">
<title>display</title>
  <script type="text/javascript">
    function hidetext()
    {
      document.getElementById("con").style.display="none";
    }
    function showtext()
    {
      document.getElementById("con").style.display="block";
    }
   </script>
</head>
<body>
  <h1>JavaScript</h1>
  <p id="con">
作为一个web开发者来说,如果你想提供漂亮的网页,令客户满意的上网体验,JavaScript
是必不可少的工具。</p>
 <form>
   <input type="button" onclick="hidetext()" value="不显示段落内容">
   <input type="button" onclick="showtext()" value="显示段落内容">
</body>
</html>
接下来说一说控制类名(className属性)
className属性设置或返回元素的class属性。
语法:
Object.className=classname
作用:
1.获取元素的class属性
2.为网页内的某个元素指定一个css样式来更改该元素的外观
看看下面的代码,获得<p>元素的class属性和改变className:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/htlm,charset=gb2312">
<title>className属性</title>
<style type="text/css">
  input{font-size:10px;}
  .one{
        width:200px;
        background-color:#ccc;
      }
   .two{
      font-size:18px;
      color:#FOO;
}
</style>
</head>
<body>
 <p id="con" class="one">JavaScript</p>
 <form>
   <input type="button" value="点击修改" onclick="modifyclass()"/>
 </form>
 <script type="text/javascript">
   var mychar=document.getElementById("con");
   document.write("p元素Class值为:"+mychar.className+"</br>");
   //输出p元素Class属性
   function modifyclass(){
    mychar.className="two";//改变className
}
 </script>
</body>
</html>
这里注意!这个地方的className还有前面提到的getElementById等等都必须严格
遵循驼峰法,否则将不起作用。

DOM小解的更多相关文章

  1. 关于DOM的操作以及性能优化问题-重绘重排

     写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...

  2. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  3. 页面嵌入dom与被嵌入iframe的攻防

    1.情景一:自己的页面被引入(嵌入)至别人的页面iframe中 if(window.self != window.top){ //url是自己页面的url window.top.location.hr ...

  4. 通俗易懂的来讲讲DOM

    DOM是所有前端开发每天打交道的东西,但是随着jQuery等库的出现,大大简化了DOM操作,导致大家慢慢的“遗忘”了它的本来面貌.不过,要想深入学习前端知识,对DOM的了解是不可或缺的,所以本文力图系 ...

  5. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  6. HTML DOM 对象

    本篇主要介绍HTML DOM 对象:Document.Element.Attr.Event等4个对象. 目录 1. Document 对象:表示文档树的根节点,大部分属性和方法都是对元素进行操作. 2 ...

  7. 重撸js_2_基础dom操作

    1.node 方法 返回 含义 nodeName String 获取节点名称 nodeType Number 获取节点类型 nodeValue String 节点的值(注意:文本也是节点) 2.inn ...

  8. 虚拟dom与diff算法 分析

    好文集合: 深入浅出React(四):虚拟DOM Diff算法解析 全面理解虚拟DOM,实现虚拟DOM

  9. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

随机推荐

  1. Caliburn Micro框架

    Caliburn Micro框架快速上手(WP)   一.使用nuget添加起始工程 二.修改App.xaml文件和App.xaml.cs文件 AppBootstrapper介绍: AppBootst ...

  2. 关于lower_bound的使用

    突然发现lower_bound是一个挺好用的东西, 在学习最长不下降子序列的nlogn的算法的时候看到的,C++党写起二分来一行- -P党一排233 感觉如果到时候需要用上二分的话,能用lower_b ...

  3. hdu 2159

    二维背包,dp[i][j]表示忍耐度为i,且还可以杀j个怪时能获得的最大经验值 dp[i][j]=max(dp[i][j],dp[i-r[k]][j-1]+e[k]),r[k]为杀死第k种怪掉的忍耐度 ...

  4. IOC and DI

    Spring.Net 技术简介 IOC and DI   一 简单介绍            IOC 控制转移,就是将创建放到容器里,从而达到接耦合的目的,DI是 在容器创建对象的时候,DI读取配置文 ...

  5. 最长递增子序列(Longest Increase Subsequence)

    问题 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱).例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8 ...

  6. 定时器Timer不定时

    订餐系统之定时器Timer不定时 经过几天漫长的问题分析.处理.测试.验证,定时器Timer终于定时了,于是开始了这篇文章,希望对还在纠结于“定时器Timer不定时”的同学有所帮助,现在的方案,在系统 ...

  7. 简单动态规划——三逆数的O(N^2)解法!

    [算法]简单动态规划——三逆数的O(N^2)解法! 问题描述: 三逆数定义:给一个数的序列A[0,1,....N-1]),当i<j<k且A[i]>A[j]>A[k]时,称作ai ...

  8. Arduino 各种模块篇 摇杆模块

    Arduino的另外几种模块,我们常见的joystick摇杆模块. 用起来很爽,摇杆 有X,Y轴可调 这里有一篇非常想尽的示例代码: http://www.geek-workshop.com/foru ...

  9. C#编写Windows 服务

    C#编写Windows 服务 Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时 ...

  10. Python学习入门基础教程(learning Python)--5.7 Python文件数据记录存储与处理

    本节主要讨论Python下如何通过文件操作实现对数据记录集的存储与处理的操作方法. 在Python里和其他高级语言一样可以通过文件读写将一些记录集写入文件或者通过文件读操作从文件里读取一条或多条和数据 ...