色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

document.all與getElementById、getElementsByName、getElementsByTagName用法區別-getElementById

不過,如果您需要查找文檔中的一個特定的元素,最有效的方法是 getElementById()。
不過要注意的是使用getElementById時對不同的瀏覽器執行的結果可能是不同的,以下有相關說明
復制代碼 代碼如下:
text1:
<input name="textName1" type="text" id="textName2" />
<br>
text2:
<input name="textName2" type="text" id="textName1" />
<br>
<input type="button" name="Submit" value="text1" onclick=alert(document.getElementById('textName2').value) />
<input type="button" name="Submit2" value="text2" onclick=alert(document.getElementById('textName1').value) />
我在IE中測試了上面的代碼,在第一個文本框中輸入1,在第二個文本框中輸入2,然后點下面的兩個按鈕,猜一下結果是什么?
我本意是按鈕1返回第一個文本框的值,按鈕2返回個文本框的值。
結果是兩個按鈕都返回了第一個文本框的值。
說明ie執行document.getElementById(elementName)的時候,返回的是第一個name或者id等于elementName的對象,并不是按照ID來查找的。
在fireFox中不存在這樣的問題,fireFox執行document.getElementById(elementName)的時候只查找id等于elementName的對象,如果不存在則返回null。
可能IE是考慮的兼容性的問題才這么做的。

以下是我測試所用的代碼:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
這個時候我在兩個text中輸入的值分別為:eee, www
IE中測試結果為:eee , eee
再看當我把<input type="text" name="aaa" id="ccc" >中的id去除時,也即上面代碼使用注釋中的內容時
我同樣輸入eee, www
IE中測試結果為:www ,eee
仔細分析上面兩個測試的結果:得出結論是:每執行getElementById一次,會將web頁面中的所有表單按順序遍歷一次,同時查找id,name兩個值,如果存在所要找的id則不再繼續查找,如果沒有相應的id與之對應則看name值是否與之對應,如果有相應的name與之對應,則不再繼續查找。也就是說:
ie執行document.getElementById(elementName)的時候,返回的是第一個name或者id等于elementName的對象,并不是僅按照ID來查找的。
而同樣的兩個測試在firefox下第一個結果為eee,www,而第二個結果因為沒有找到id="ccc"所以返回null
對于這個結果還可參見
http://www.jb51.NET/article/16852.htm
他還對getElementById與getElementByName進行了分析,值得一看。

JavaScript技術document.all與getElementById、getElementsByName、getElementsByTagName用法區別-getElementById,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 莱州市| 杭锦后旗| 开平市| 涞源县| 宿松县| 夏河县| 永济市| 房山区| 乌审旗| 耿马| 定兴县| 盐源县| 蚌埠市| 湘潭县| 沁水县| 娄底市| 乌恰县| 义乌市| 常山县| 盐城市| 武汉市| 光山县| 南澳县| 临沭县| 万源市| 阳山县| 邵阳县| 宁德市| 彭阳县| 江孜县| 兴城市| 迭部县| 宿迁市| 大方县| 买车| 绍兴市| 衢州市| 东莞市| 长沙县| 郧西县| 永修县|