天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

對(duì)于ID & Name 按最經(jīng)典的解釋的:“ID 就如同我們的身份證,Name就如同我們的名字”,也就是說,在一個(gè)html文檔中ID是唯一的,但是Name是可以重復(fù)的,就象我們的人名可以重復(fù)但是身份證確實(shí)全中國唯一的(PS:據(jù)說有重復(fù)的^_^)
但是對(duì)于document.getElementsByName 與document.getElementById 這個(gè)兩個(gè)方法,IE中是并沒有嚴(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中通過 getId 傳入 name 同樣可以訪問到目標(biāo)元素,而通過 getName 傳入 Id 也可以訪問到目標(biāo)元素。
MSDN中對(duì)兩個(gè)方法的解釋:
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 方法做了說明:“具有指定 Name 或者 ID 屬性的元素都會(huì)返回”,但是
getElementById 方法卻沒有說明,然而內(nèi)部實(shí)現(xiàn)同 getElementsByName 是一樣的。
而對(duì)于FF,看來更忠實(shí)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
由于有這個(gè)問題,所以對(duì)ASP.NET 控件中諸如 radiobuttonlist checkboxlist,使用客戶端腳本通過getElementsByName訪問具有name屬性的成組對(duì)象時(shí)就要注意了,因?yàn)閞adiobuttonlist 默認(rèn)會(huì)呈現(xiàn)一個(gè)table來包容這些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,
如果客戶端需要有這樣的script,也為代碼的跨瀏覽器帶來了的麻煩。
注:radiobuttonlist可以選擇“流布局”呈現(xiàn),同樣會(huì)生成一個(gè)類似的外圍<span/>來做為容器,也會(huì)產(chǎn)生這個(gè)問題。

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

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

主站蜘蛛池模板: 网址在线观看你懂我意思吧免费的 | 青柠在线观看视频在线高清完整 | 天天爽夜夜爽8888视频精品 | 国产精品视频在线自在线 | 国产亚洲精品久久无码98 | 长篇高h肉爽文丝袜 | A级毛片无码久久精品免费 a级毛片黄免费a级毛片 | 久青草国产在线视频 | 男人天堂999| 人妻夜夜爽99麻豆AV | 精品无码日本蜜桃麻豆 | 一本大道无码AV天堂欧美 | 51xx午夜影视福利 | 欧美日韩另类在线专区 | 国色天香社区视频免费高清3 | 久久频这里精品99香蕉久网址 | 中文字幕va一区二区三区 | 久久6699精品国产人妻 | 好男人视频免费高清在线观看www | 久久网站视频 | 99日精品欧美国产 | 中文字幕完整高清版 | 九九热视频免费 | 亚洲精品无码不卡在线播放he | 美女张开腿露出尿口扒开来摸动漫 | 无码乱人伦一区二区亚洲一 | 国产成人精品自线拍 | 久久精品一本到东京热 | 色AV色婷婷66人妻久久久 | 神电影院午夜dy888我不卡 | 国产 欧美 亚洲 日韩视频 | 男女午夜性爽快免费视频不卡 | 疯狂做受XXXX高潮欧美日本 | 无人区乱码区1卡2卡三卡在线 | brazzers巨臀系列| 中文字幕一区二区三区在线播放 | 国产系列在线亚洲视频 | 国产人成高清在线视频99 | 纯肉合集(高H) | 午夜福利理论片在线播放 | 暖暖 免费 高清 日本视频大全 |