JavaScript中為元素加上name屬性的方法

來源:互聯網
上載者:User

今天遇到個小問題, 在構建 DOM 時, IE 中不能通過 element.setAttribute('name', _variable); 和 element.name = _variable; 這樣的形式來為元素加上 name 屬性, 無論是 IE6 還是 IE7. (IE8 是可以的, 但 IE8rc1 不行)

後來我查看了 MSDN, 得到資訊如下:
複製代碼 代碼如下:
Internet Explorer 8 and later can set the NAME attribute at run time on elements dynamically created with the createElement method. To create an element with a NAME attribute in earlier versions of Internet Explorer, include the attribute and its value when using the createElement method.

也就是說, 我們必須通過帶屬性和值的標籤來建立有 name 屬性的元素. 為求各瀏覽器安全色良好, 代碼可以這樣寫:
複製代碼 代碼如下:
var element = null;
try {
// IE6/IE7 構建方式
element = document.createElement('<input name="radio-button">');
} catch (e) {
// W3C 構建方式
element = document.createElement('input');
element.name = 'radio-button';
}
// 定義其他屬性
element.id = 'radio-1'
element.type = 'radio';

以前我是一個 Java 開發人員, 實際工作中 JavaScript 的代碼量其實不多, 在自己的一些小應用中往往只是小打小鬧, 會 (潛意識地) 避開一些可能出問題的地方, 像跨域使用 AJAX, IE 記憶體流失這樣的問題很少回去考慮. 但在轉做 UED 後, JavaScript 和互動應用肯定會成為我以後的工作重點, 發生大小各異問題的機會相當多 (現在幾乎每天都有), 在解決各種問題的過程中, 我痛並快樂著. 本著不瞎搞, 少折騰的原則, 有必要把這些記錄一下, 為自己備份, 更能與人分享.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.