四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

document.getElementsByName和document.getElementById 在IE與FF中不同實(shí)現(xiàn)

對(duì)于ID & Name 按最經(jīng)典的解釋的:“ID 就如同我們的身份證,Name就如同我們的名字”,也就是說(shuō),在一個(gè)html文檔中ID是唯一的,但是Name是可以重復(fù)的,就象我們的人名可以重復(fù)但是身份證確實(shí)全中國(guó)唯一的(PS:據(jù)說(shuō)有重復(fù)的^_^)
但是對(duì)于document.getElementsByName 與document.getElementById 這個(gè)兩個(gè)方法,IE中是并沒(méi)有嚴(yán)格區(qū)分 ID 與 Name 的,比如:
<script type="text/Javascript">
function useGetElementsByNameWithId(id) {
var eles = document.getElementsByName('ID_A');
var msg = '使用 getElementsByName 傳入 ID:得到:'
if(eles.length > 0) {
msg += " Name " + eles[0].id;
}
alert(msg);
}
function usegetElementByIdWithName(name) {
var ele = document.getElementById(name);
var msg = '使用 getElementById 傳入 Name 得到:';
if(ele) {
msg += " ID " + ele.id;
}
alert(msg);
}
</script><input id="ID_A" name="Name_A" type="button" value="使用 getElementsByName 傳入 ID" onclick="useGetElementsByNameWithId(this.id)" />
<input id="ID_B" name="Name_B" type="button" value="使用 getElementsByName 傳入 Name" onclick="usegetElementByIdWithName(this.name)" />IE中通過(guò) getId 傳入 name 同樣可以訪(fǎng)問(wèn)到目標(biāo)元素,而通過(guò) getName 傳入 Id 也可以訪(fǎng)問(wèn)到目標(biāo)元素。
MSDN中對(duì)兩個(gè)方法的解釋?zhuān)?
getElementById Method
--------------------------------------------------------------------------------
Returns a reference to the first object with the specified value of the ID attribute.
Remarks
When you use the getElementsByName method, all elements in the document that have the specified NAME or ID attribute value are returned.
Elements that support both the NAME and the ID attribute are included in the collection returned by the getElementsByName method, but not elements with a NAME expando.
MSDN確實(shí)對(duì) getElementsByName 方法做了說(shuō)明:“具有指定 Name 或者 ID 屬性的元素都會(huì)返回”,但是
getElementById 方法卻沒(méi)有說(shuō)明,然而內(nèi)部實(shí)現(xiàn)同 getElementsByName 是一樣的。
而對(duì)于FF,看來(lái)更忠實(shí)W3C標(biāo)準(zhǔn),上面的測(cè)試代碼是沒(méi)有辦法返回目標(biāo)元素的。
W3C 中的相關(guān)信息:
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-26809268
由于有這個(gè)問(wèn)題,所以對(duì)ASP.NET 控件中諸如 radiobuttonlist checkboxlist,使用客戶(hù)端腳本通過(guò)getElementsByName訪(fǎng)問(wèn)具有name屬性的成組對(duì)象時(shí)就要注意了,因?yàn)閞adiobuttonlist 默認(rèn)會(huì)呈現(xiàn)一個(gè)table來(lái)包容這些radio,而這個(gè)table id 與這些radio的name時(shí)相同的,比如:
.ASPx
<ASP:radiobuttonlist id="RadioButtonList1" runat="server">
<ASP:listitem>opt1</ASP:listitem>
<ASP:listitem>opt2</ASP:listitem>
<ASP:listitem>opt3</ASP:listitem>
</ASP:radiobuttonlist>HTML:
<table id="RadioButtonList1" border="0">
<tr>
<td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="opt1" /><label for="RadioButtonList1_0">opt1</label></td>
</tr><tr>
<td><input id="RadioButtonList1_1" type="radio" name="RadioButtonList1" value="opt2" /><label for="RadioButtonList1_1">opt2</label></td>
</tr><tr>
<td><input id="RadioButtonList1_2" type="radio" name="RadioButtonList1" value="opt3" /><label for="RadioButtonList1_2">opt3</label></td>
</tr>
</table>
在IE中使用 document.getElementsByName('RadioButtonList1') 就是返回四個(gè)元素了,第一個(gè)元素是那個(gè)id為 RadioButtonList1 的table,
如果客戶(hù)端需要有這樣的script,也為代碼的跨瀏覽器帶來(lái)了的麻煩。
注:radiobuttonlist可以選擇“流布局”呈現(xiàn),同樣會(huì)生成一個(gè)類(lèi)似的外圍<span/>來(lái)做為容器,也會(huì)產(chǎn)生這個(gè)問(wèn)題。

AspNet技術(shù)document.getElementsByName和document.getElementById 在IE與FF中不同實(shí)現(xiàn),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 男国少年梦 电影| 电影《19号海滩》在线播放国语版| 部队换季保养广播稿| 黑色纳粹电影完整版| 蓝家宝电影| 国家征收土地多少钱一亩| 音乐僵尸演员表| 正在行动| 萱草花合唱谱二声部完整版| 湿身美女| 星河长明免费观看电视剧| 忌讳2| 巴霍巴利王3电影免费观看| 生死搏斗| 鲁滨逊漂流记阅读笔记| 谭天| 超薄轻舞玉女女裤广场舞| 妻子的秘密日本电影| hellokitty壁纸| 无耻之徒豆瓣| 免费完整队列训练教案| 洞房视频| 朱迅身高| 吾栖之肤完整版在线观看| 裂缝 电影| 报团云南旅游价格| 画江湖之不良人7季什么时候上映 画江湖之不良人第七季什么时候出 | 梁山伯与祝英台电影| 暴露视频| 爱爱免费| 风云2演员表全部| 风月电视剧免费观看剧情 | 王艺潼| 坏种2| 赤胆情| 天津电视台体育频道| 相识电影| 韩秀云讲经济| 林正英复仇电影| 欧美13| 性高中|