国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

document.all與getElementById、getElementsByName、getElementsByT

2024-05-06 14:16:25
字體:
來源:轉載
供稿:網友
不過,如果您需要查找文檔中的一個特定的元素,最有效的方法是 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
對于這個結果還可參見
//m.survivalescaperooms.com/article/16852.htm
他還對getElementById與getElementByName進行了分析,值得一看。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 青铜峡市| 饶平县| 闵行区| 苗栗县| 岗巴县| 洪雅县| 青龙| 渭源县| 漳浦县| 泰州市| 东海县| 松江区| 夏津县| 仙游县| 大理市| 庄河市| 龙岩市| 新巴尔虎左旗| 绵竹市| 镇雄县| 通化县| 陇南市| 宜阳县| 固镇县| 徐水县| 宝鸡市| 东明县| 德令哈市| 麻栗坡县| 南汇区| 紫云| 土默特左旗| 宁蒗| 县级市| 赞皇县| 灵石县| 青河县| 六盘水市| 扎囊县| 肇东市| 会理县|