javascript基礎、DOM


Javascriptjava的不同之處:

1         javascript是Netscape公司語言,基於對象和事件驅動,javasun公司,現在是Orcacle公司

2         js是基於對象,java是面向對象

3         js是由瀏覽器解釋並執行,java是由jvm解釋並執行

4         js是弱類型的語言,java是強類型

5         js是非嚴謹的,java是嚴謹的,javascript運行在客戶端

javascript基本語法:

1、  變量

                        i.              通過var關鍵字定義變量,該變量可以賦予不同類型的常量

                      ii.              var x=3;

                    iii.              x=”abc”;

                     iv.              特殊的常量-àundefined

2、  語句

                        i.              Ifswitchwhiledowhilefor

                      ii.              使用邏輯運算符進行布爾表達式連接的時候,需要是短路與和短路或&&||

                    iii.              因爲在js中,非0即爲true0false,非nulltruenullfalse

                     iv.              Js特有的語句:

                       v.              with(對象){}:可以確定對象所使用的範圍,在範圍內,可以直接使用指定對象的屬性和行爲,而不需要用對象 .的形式調用。簡化了對象的操作;

                     vi.              for(變量 in對象):可以對對象的屬性及行爲進行遍歷;

3、  數組

對於js的數組特點在於:該數組的長度是可變的,相對與java中的集合;

該數組中可以存放的元素類型是可以不同的

定義格式:

        Var arr=[3,true,”abc”];

        Var arr=new Array( );

        Var arr=[[3,1,9],[3,4]];

操作形式和java一樣,都是通過for進行遍歷,同時也使用了指針思想

4、  函數:通過function關鍵字定義函數

DOM:document object model----à文檔對象模型

Dom三層模型:

Dom1:html文檔封裝成對象

Dom2:將xml文檔封裝成對象

Dom3:將xml文檔封裝成對象

Dhtml:動態html

Html:將數據進行封裝

Dom:將標籤封裝成對象

Css:負責標籤中數據的樣式

Javascript:將三個進行融合,通過程序設計方式來完成動態效果的操作;

xmlHttpRequest----àAJAX

dom其實就是將一些標記型的文檔以及文檔中的內容當成對象,因爲可以在對象中定義其屬性和行爲,可以方便操作這些對象;

htmlxhtmlxml:這些都是標記型文檔;

DHTML:是多個技術的綜合體,叫做動態的html

標籤之間存在着層次關係:

Html

       |--head

             |--title

             |--base

             |--link

             |--meta

             |--style

             |--script

      |--body

             |--div

             |--form

                    |--input

                    |--select

             |--span

             |--a

             |--table

                    |--tbody

                           |--tr

                                  |--td

                                  |--th

             |--dl

                    |--dt

                    |--dd

 通過這個標籤層次,可以形象的看做是一個樹形結構,加載進內存的是一棵DOM樹,這些標籤以及標籤的數據都是這棵樹上的節點;

DOM對已標記型文檔的解析有一個弊端就是文檔過大,相對消耗資源;對於大型文檔可以使用SAX方式解析;

 

節點之間的關係:父節點、子節點、兄弟節點(上一個兄弟節點--previousSibling、下一個兄弟節點--nextSibling

獲取可以通過節點的層次關係完成,也可以通過document對象完成

getElementById:通過id屬性值獲取對應的節點對象,如果有多個id值相同,獲取到的是第一個id所屬對象;

getElementsByName:通過標籤的name屬性值獲取對象,返回的是一堆對象,其實是一個對象數組;

getElementByTagname

 

實例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>無標題文檔</title>

 

<script type="text/javascript">

var str="";

function listNode(node,level)

{

       printInfo(node,level);

       level++;

       var nodes=node.childNodes;

       for(var x=0;x<nodes.length;x++)

       {

              if(nodes[x].hasChildNodes())

                     listNode(nodes[x],level);

              else

                     printInfo(nodes[x],level);

       }

}

function printInfo(node,level)

{

       str+=getSpace(level)+"name:"+node.nodeName+"..type:"+node.nodeType+"..value:"+node.nodeValue+"<br/>"

       document.write(str);

}

function getSpace(level)

{

       var s="";

       for(var x=0;x<level;x++)

       {

              s+="|--";

       }

       return s;

}

function getNodes()

{

       listNode(document,0);

}

</script>

</head>

<body>

       <input type="button"value="演示" οnclick="getNodes()"/>

       <div id="divid">

             滾滾長江東逝水

              </div>

<table>

       <tr>

              <td>單元格一</td>

              <td>單元格二</td>

       </tr>

              <tr>

              <td>單元格一</td>

              <td>單元格二</td>

       </tr>

</table>

<a href="http://www.sina.com">新浪</a>

<span>石板區域</span>

</body>

</html>

 


發佈了59 篇原創文章 · 獲贊 95 · 訪問量 59萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章