七郎's JavaBlog

          草木竹石皆可為劒。至人之用人若鏡,不將不迎,應而不藏,故能勝物而不傷。
          posts - 60, comments - 14, trackbacks - 0, articles - 0

           

          WEB標準下可以通過getElementById(), getElementsByName(), and getElementsByTagName()訪問DOCUMENT中的任一個標簽:

          1、getElementById()
          getElementById()可以訪問DOCUMENT中的某一特定元素,顧名思義,就是通過ID來取得元素,所以只能訪問設置了ID的元素。
          比如說有一個DIV的ID為docid:
          <div id="docid"></div>
          那么就可以用getElementById("docid")來獲得這個元素。

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd"
          >
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <title>ById</title>
          <style type="text/css">
          <!--
          #docid
          {
          height
          :400px;
          width
          :400px;
          background-color
          :#999;}

          -->
          </style>
          </head>
          <body><div id="docid" name="docname" onClick="bgcolor()"></div>
          </body>
          </html>
          <script language="JavaScript" type="text/JavaScript">
          <!--
          function bgcolor(){
          document.getElementById(
          "docid").style.backgroundColor="#000"
          }

          -->
          </script>
          、getElementsByName()
          這個是通過NAME來獲得元素,但不知大家注意沒有,這個是GET ELEMENTS,復數(shù)ELEMENTS代表獲得的不是一個元素,為什么呢?
          因為DOCUMENT中每一個元素的ID是唯一的,但NAME卻可以重復。打個比喻就像人的身份證號是唯一的(理論上,雖然現(xiàn)實中有重復),但名字

          重復的卻很多。如果一個文檔中有兩個以上的標簽NAME相同,那么getElementsByName()就可以取得這些元素組成一個數(shù)組。

          比如有兩個DIV:
          <div name="docname" id="docid1"></div>
          <div name="docname" id="docid2"></div>
          那么可以用getElementsByName("docname")獲得這兩個DIV,用getElementsByName("docname")[0]訪問第一個DIV,用getElementsByName


          3、getElementsByTagName()
          這個呢就是通過TAGNAME(標簽名稱)來獲得元素,一個DOCUMENT中當然會有相同的標簽,所以這個方法也是取得一個數(shù)組。
          下面這個例子有兩個DIV,可以用getElementsByTagName("div")來訪問它們,用getElementsByTagName("div")[0]訪問第一個DIV,用

          getElementsByTagName("div")[1]訪問第二個DIV。

          <!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>Byname,tag</title>
          <style type="text/css">
          <!--
          #docid1,#docid2
          {
          margin
          :10px;
          height
          :400px;
          width
          :400px;
          background-color
          :#999;}

          -->
          </style>
          </head>
          <body>
          <div name="docname" id="docid1" onClick="bgcolor()"></div>
          <div name="docname" id="docid2" onClick="bgcolor()"></div>
          </body>
          </html>
          <script language="JavaScript" type="text/JavaScript">
          <!--
          function bgcolor(){
          var docnObj=document.getElementsByTagName("div");
          docnObj[
          0].style.backgroundColor = "black";
          docnObj[
          1].style.backgroundColor = "black";
          }

          -->
          </script>
          總結一下標準DOM,訪問某一特定元素盡量用標準的getElementById(),訪問標簽用標準的getElementByTagName(),但IE不支持

          getElementsByName(),所以就要避免使用getElementsByName(),但getElementsByName()和不符合標準的document.all[]也不是全無是處,它

          們有自己的方便之處,用不用那就看網(wǎng)站的用戶使用什么瀏覽器,由你自己決定了。

            Javascript中的getElementById十分常用,但在標準的頁面中,一個id只能出現(xiàn)一次,如果我想同時控制多個元素,例如點一個鏈接, 讓多個層隱藏,該怎么做?用class,當然,同一個class是可以允許在頁面中重復出現(xiàn)的,那么有沒有getElementByClass呢?沒有, 但是可以解決: 

          //Create an array 
          var allPageTags = new Array(); 

          function hideDivWithClasses(theClass) {
          //Populate the array with all the page tags
          var allPageTags=document.getElementsByTagName("div");
          //Cycle through the tags using a for loop
          for (i=0; i//Pick out the tags with our class name
          if (allPageTags[i].className==theClass) {
          //Manipulate this in whatever way you want
          allPageTags[i].style.display='none';
          }
          }
          }
           

          1,grid.getCell(i,3).innerHTML;curobj.nextSibling.innerHTML

              innerHTML InnerHtml 屬性不自動對進出 HTML 實體的特殊字符進行編碼。HTML 實體允許顯示特殊字符(如 
          < 字符),瀏覽器通常會將這些字符解釋為具有特殊含義。< 字符會被解釋為標志的開頭,并且不會在頁面上顯示。若要顯示 < 字符,將需要使用實體 &lt;。

          例如,如果 InnerHtml 屬性設置為 "<b
          > Hello </b>",則 < 和 > 字符不會分別轉換為 &lt; 和 &gt;。呈現(xiàn)的輸出仍將是:<b> Hello </b>。瀏覽器將檢測 <b> 標記并用粗體顯示“Hello”文本。

          警告   由于未對此文本進行 HTML 編碼,因此可以在文本的 HTML 標記內嵌入腳本。如果該屬性是使用用戶輸入動態(tài)設置的,請務必驗證它的值以減少安全漏洞。
          若要提供自動 HTML 編碼和解碼,請使用 InnerText 屬性。

          以上是微軟的一個網(wǎng)站上介紹的,而我只是簡單的認為取出來的是html格式。


          2,typeName = temp.options[temp.selectedIndex].innerText;document.all("B1").innerText="關閉";name==name_other.options[i].innerText;opn.innerText=nameArray[i];

          使用 InnerText 屬性以編程方式修改 HTML 服務器控件的開始和結束標記之間的內容。

          與 InnerHtml 屬性不同,InnerText 屬性自動對進出 HTML 實體的特殊字符進行編碼。HTML 實體允許顯示特殊字符(如 
          < 字符),瀏覽器通常會將這些字符解釋為具有特殊含義。< 字符會被解釋為標志的開頭,并且不會在頁面上顯示。若要顯示 < 字符,將需要使用實體 &lt;。

          例如,如果 InnerText 屬性設置為 "<b
          > Hello </b>",則 < 和 > 符號分別轉換為 &lt; 和 &gt;。呈現(xiàn)的輸出將是:&lt; b &gt; Hello &lt;/b &gt;&lt; 和 &gt; 實體將向瀏覽器指示這些字符將顯示在頁上。瀏覽器將不檢測 <b> 標記并用粗體顯示該文本。顯示在頁上的文本是:<b> Hello </b>
           

           =======================================================================
          用js讀出xml中的項中。項中。。項中。的子內容

           
          <SCRIPT LANGUAGE="JavaScript">
           
          <!--
            xmlDoc
          =loadXMLDoc("http://www.cnblogs.com/winner/Rss.aspx"); //調用下面的loadxml
           //var x=xmlDoc.getElementsByTagName('title'); //得到一共有多少個title對象
            var x=xmlDoc.getElementsByTagName('item'); 
           
          // var x=b.getElementsByTagName('title');
            for (i=0;i<x.length;i++)
            
          {
            
          //document.write(x[i].childNodes[1].nodeValue) //不知道元素,則用 xmldoc.getElementsByTagName("item")[i].chileNodes[0].nodeValue表示第一項的值
            document.write(x[i].getElementsByTagName("title").item(0).text);   //心得"如果知道title指定元素則用他"
            document.write("<br />")
            }


           

            
          function loadXMLDoc(dname) 
          {
          var xmlDoc;
          // code for IE
          if (window.ActiveXObject)
          {
          xmlDoc
          =new ActiveXObject("Microsoft.XMLDOM");
          }

          // code for Mozilla, Firefox, Opera, etc.
          else if (document.implementation && document.implementation.createDocument)
          {
          xmlDoc
          =document.implementation.createDocument("","",null);
          }

          else
          {
          alert('Your browser cannot handle 
          this script');
          }

          xmlDoc.async
          =false;
          xmlDoc.load(dname);
          return(xmlDoc);
          }

            
          //-->
           
          </SCRIPT>


          =================================================
          xml+js實例

          The XML file“note.xml“
          <?xml version="1.0" encoding="ISO8859-1" ?>
          <note>
            
          <to>Tove</to>
            
          <from>Jani</from>
            
          <heading>Reminder</heading>
            
          <body>Don't forget me this weekend!</body>
          </note> 

          以下三組腳本分別反映了不同的方法(容易理解)
          <script language="VBScript" type="text/VBScript">
          set xmlDoc=CreateObject("Microsoft.XMLDOM")
          xmlDoc.async
          ="false"
          xmlDoc.load(
          "note.xml")

          for each x in xmlDoc.documentElement.childNodes
            document.write(x.nodename)
            document.write(
          "")
            document.write(x.text)
            document.write(
          "<br>")
          next
          </script>
           

          <script language="JavaScript"
          for
          ="window" event="onload">
          var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
          xmlDoc.async
          ="false"
          xmlDoc.load(
          "note.xml")
          nodes 
          = xmlDoc.documentElement.childNodes
          to.innerText 
          = nodes.item(0).text
          from.innerText 
          = nodes.item(1).text
          header.innerText 
          = nodes.item(2).text
          body.innerText 
          = nodes.item(3).text
          </script>
          <title>HTML using XML data</title>
          </head>
          <h1>Refsnes Data Internal Note</h1>
          <b>To: </b><span id="to"></span>
          <br>
          <b>From: </b><span id="from"></span>
          <hr>
          <b><span id="header"></span></b>
          <hr>
          <span id="body"></span>
           

          <script language="JavaScript">
          var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
          xmlDoc.async
          ="false"
          xmlDoc.load(
          "note.xml")
          document.write(
          "The From element contains: ")
          document.write(xmlDoc.getElementsByTagName
          "from").item(0).text)
          </script> 

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 富阳市| 漳州市| 萝北县| 启东市| 三穗县| 密云县| 五河县| 利津县| 玉山县| 新绛县| 视频| 彝良县| 重庆市| 武胜县| 海安县| 呈贡县| 闸北区| 广灵县| 洛阳市| 蒙自县| 巩留县| 湄潭县| 金平| 长垣县| 梓潼县| 博白县| 阿拉尔市| 根河市| 崇礼县| 嵊州市| 邵阳县| 祁阳县| 南岸区| 长沙市| 当涂县| 乌拉特后旗| 武夷山市| 绥化市| 环江| 阳朔县| 吉林市|