etElementByID getElementsByName getElementsByTagName的區(qū)別和總結(jié)
WEB標(biāo)準(zhǔn)下可以通過(guò)getElementById(), getElementsByName(), and getElementsByTagName()訪問(wèn)DOCUMENT中的任一個(gè)標(biāo)簽:
1、getElementById()
getElementById()可以訪問(wèn)DOCUMENT中的某一特定元素,顧名思義,就是通過(guò)ID來(lái)取得元素,所以只能訪問(wèn)設(shè)置了ID的元素。
比如說(shuō)有一個(gè)DIV的ID為docid:
<div id="docid"></div>
那么就可以用getElementById("docid")來(lái)獲得這個(gè)元素。
重復(fù)的卻很多。如果一個(gè)文檔中有兩個(gè)以上的標(biāo)簽NAME相同,那么getElementsByName()就可以取得這些元素組成一個(gè)數(shù)組。
比如有兩個(gè)DIV:
<div name="docname" id="docid1"></div>
<div name="docname" id="docid2"></div>
那么可以用getElementsByName("docname")獲得這兩個(gè)DIV,用getElementsByName("docname")[0]訪問(wèn)第一個(gè)DIV,用getElementsByName
3、getElementsByTagName()
這個(gè)呢就是通過(guò)TAGNAME(標(biāo)簽名稱)來(lái)獲得元素,一個(gè)DOCUMENT中當(dāng)然會(huì)有相同的標(biāo)簽,所以這個(gè)方法也是取得一個(gè)數(shù)組。
下面這個(gè)例子有兩個(gè)DIV,可以用getElementsByTagName("div")來(lái)訪問(wèn)它們,用getElementsByTagName("div")[0]訪問(wèn)第一個(gè)DIV,用
getElementsByTagName("div")[1]訪問(wèn)第二個(gè)DIV。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<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>
總結(jié)一下標(biāo)準(zhǔn)DOM,訪問(wèn)某一特定元素盡量用標(biāo)準(zhǔn)的getElementById(),訪問(wèn)標(biāo)簽用標(biāo)準(zhǔn)的getElementByTagName(),但I(xiàn)E不支持
getElementsByName(),所以就要避免使用getElementsByName(),但getElementsByName()和不符合標(biāo)準(zhǔn)的document.all[]也不是全無(wú)是處,它
們有自己的方便之處,用不用那就看網(wǎng)站的用戶使用什么瀏覽器,由你自己決定了。
Javascript中的getElementById十分常用,但在標(biāo)準(zhǔn)的頁(yè)面中,一個(gè)id只能出現(xiàn)一次,如果我想同時(shí)控制多個(gè)元素,例如點(diǎn)一個(gè)鏈接, 讓多個(gè)層隱藏,該怎么做?用class,當(dāng)然,同一個(gè)class是可以允許在頁(yè)面中重復(fù)出現(xiàn)的,那么有沒(méi)有g(shù)etElementByClass呢?沒(méi)有, 但是可以解決:
//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 屬性不自動(dòng)對(duì)進(jìn)出 HTML 實(shí)體的特殊字符進(jìn)行編碼。HTML 實(shí)體允許顯示特殊字符(如 < 字符),瀏覽器通常會(huì)將這些字符解釋為具有特殊含義。< 字符會(huì)被解釋為標(biāo)志的開頭,并且不會(huì)在頁(yè)面上顯示。若要顯示 < 字符,將需要使用實(shí)體 <。
例如,如果 InnerHtml 屬性設(shè)置為 "<b> Hello </b>",則 < 和 > 字符不會(huì)分別轉(zhuǎn)換為 < 和 >。呈現(xiàn)的輸出仍將是:<b> Hello </b>。瀏覽器將檢測(cè) <b> 標(biāo)記并用粗體顯示“Hello”文本。
警告 由于未對(duì)此文本進(jìn)行 HTML 編碼,因此可以在文本的 HTML 標(biāo)記內(nèi)嵌入腳本。如果該屬性是使用用戶輸入動(dòng)態(tài)設(shè)置的,請(qǐng)務(wù)必驗(yàn)證它的值以減少安全漏洞。
若要提供自動(dòng) HTML 編碼和解碼,請(qǐng)使用 InnerText 屬性。
以上是微軟的一個(gè)網(wǎng)站上介紹的,而我只是簡(jiǎn)單的認(rèn)為取出來(lái)的是html格式。
2,typeName = temp.options[temp.selectedIndex].innerText;document.all("B1").innerText="關(guān)閉";name==name_other.options[i].innerText;opn.innerText=nameArray[i];
使用 InnerText 屬性以編程方式修改 HTML 服務(wù)器控件的開始和結(jié)束標(biāo)記之間的內(nèi)容。
與 InnerHtml 屬性不同,InnerText 屬性自動(dòng)對(duì)進(jìn)出 HTML 實(shí)體的特殊字符進(jìn)行編碼。HTML 實(shí)體允許顯示特殊字符(如 < 字符),瀏覽器通常會(huì)將這些字符解釋為具有特殊含義。< 字符會(huì)被解釋為標(biāo)志的開頭,并且不會(huì)在頁(yè)面上顯示。若要顯示 < 字符,將需要使用實(shí)體 <。
例如,如果 InnerText 屬性設(shè)置為 "<b> Hello </b>",則 < 和 > 符號(hào)分別轉(zhuǎn)換為 < 和 >。呈現(xiàn)的輸出將是:< b > Hello </b >。< 和 > 實(shí)體將向?yàn)g覽器指示這些字符將顯示在頁(yè)上。瀏覽器將不檢測(cè) <b> 標(biāo)記并用粗體顯示該文本。顯示在頁(yè)上的文本是:<b> Hello </b>。
=======================================================================
用js讀出xml中的項(xiàng)中。項(xiàng)中。。項(xiàng)中。的子內(nèi)容
<SCRIPT LANGUAGE="JavaScript">
<!--
xmlDoc=loadXMLDoc(" //var x=xmlDoc.getElementsByTagName('title'); //得到一共有多少個(gè)title對(duì)象
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表示第一項(xiàng)的值
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實(shí)例
以下三組腳本分別反映了不同的方法(容易理解)
<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>
=======================================================================================
聯(lián)系客服