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

首頁 > 編程 > .NET > 正文

document.getElementsByName和document.getElementById 在IE與FF中不同

2024-07-10 12:39:23
字體:
來源:轉載
供稿:網友
對于ID & Name 按最經典的解釋的:“ID 就如同我們的身份證,Name就如同我們的名字”,也就是說,在一個html文檔中ID是唯一的,但是Name是可以重復的,就象我們的人名可以重復但是身份證確實全中國唯一的(PS:據說有重復的^_^)
但是對于document.getElementsByName 與document.getElementById 這個兩個方法,IE中是并沒有嚴格區分 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 同樣可以訪問到目標元素,而通過 getName 傳入 Id 也可以訪問到目標元素。
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 方法卻沒有說明,然而內部實現同 getElementsByName 是一樣的。
而對于FF,看來更忠實W3C標準,上面的測試代碼是沒有辦法返回目標元素的。
W3C 中的相關信息:
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-26809268
由于有這個問題,所以對ASP.NET 控件中諸如 radiobuttonlist checkboxlist,使用客戶端腳本通過getElementsByName訪問具有name屬性的成組對象時就要注意了,因為radiobuttonlist 默認會呈現一個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>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安西县| 贵州省| 库尔勒市| 东光县| 乡城县| 周至县| 张北县| 曲麻莱县| 六枝特区| 南皮县| 镇雄县| 曲阳县| 溧阳市| 宁远县| 马龙县| 安西县| 全州县| 东乡县| 洮南市| 洞头县| 文安县| 通江县| 新宾| 延长县| 乌兰浩特市| 红河县| 合阳县| 香河县| 砀山县| 岑溪市| 新河县| 杭锦旗| 武城县| 乌拉特后旗| 大渡口区| 新绛县| 仁布县| 张家港市| 田林县| 拉萨市| 崇礼县|