中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

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

對于ID & Name 按最經(jīng)典的解釋的:“ID 就如同我們的身份證,Name就如同我們的名字”,也就是說,在一個html文檔中ID是唯一的,但是Name是可以重復(fù)的,就象我們的人名可以重復(fù)但是身份證確實全中國唯一的(PS:據(jù)說有重復(fù)的^_^)
但是對于document.getElementsByName 與document.getElementById 這個兩個方法,IE中是并沒有嚴格區(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中通過 getId 傳入 name 同樣可以訪問到目標(biāo)元素,而通過 getName 傳入 Id 也可以訪問到目標(biāo)元素。
MSDN中對兩個方法的解釋:
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確實對 getElementsByName 方法做了說明:“具有指定 Name 或者 ID 屬性的元素都會返回”,但是
getElementById 方法卻沒有說明,然而內(nèi)部實現(xiàn)同 getElementsByName 是一樣的。
而對于FF,看來更忠實W3C標(biāo)準(zhǔn),上面的測試代碼是沒有辦法返回目標(biāo)元素的。
W3C 中的相關(guān)信息:
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-26809268
由于有這個問題,所以對ASP.NET 控件中諸如 radiobuttonlist checkboxlist,使用客戶端腳本通過getElementsByName訪問具有name屬性的成組對象時就要注意了,因為radiobuttonlist 默認會呈現(xiàn)一個table來包容這些radio,而這個table id 與這些radio的name時相同的,比如:
.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') 就是返回四個元素了,第一個元素是那個id為 RadioButtonList1 的table,
如果客戶端需要有這樣的script,也為代碼的跨瀏覽器帶來了的麻煩。
注:radiobuttonlist可以選擇“流布局”呈現(xiàn),同樣會生成一個類似的外圍<span/>來做為容器,也會產(chǎn)生這個問題。

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

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

主站蜘蛛池模板: 91精品国产91久久久久久不卞 | 亚洲精品大片 | 国产精品久久久久久久白浊 | 久久久久成人精品亚洲国产 | 欧洲毛片 | 亚洲视频在线看 | 亚洲欧洲日本国产 | 亚洲高清视频一区二区 | 国产在线精品一区二区三区 | 日韩精品激情 | 99re国产 | 日韩中文字幕2019 | 精品综合久久 | 亚洲一区二区三区四区五区中文 | 麻豆国产一区二区三区四区 | 一本一道久久a久久精品蜜桃 | 国产欧美日韩综合精品一区二区 | 亚洲国产成人精品女人久久久 | 国产偷录叫床高潮录音 | 国产精品一区二区在线 | 欧美精品一二三区 | 久久久久久免费毛片精品 | 成人婷婷 | 一区二区三区四区av | 我要看一级片 | 精品久久一区二区三区 | 91成人免费| 亚洲精品888| 亚洲日本乱码在线观看 | 最新国产视频 | 日本午夜精品 | 91麻豆精品国产91久久久更新资源速度超快 | 久久99精品久久久久久琪琪 | 蜜月aⅴ国产精品 | 狠狠操av| 成人妇女免费播放久久久 | 精品毛片 | 婷婷色国产偷v国产偷v小说 | 午夜视频免费在线观看 | 国产乱码久久久久久一区二区 | 精国产品一区二区三区四季综 |