2010年4月11日 星期日

解決 ie 使用 getElementsByName 不正常

使用下列函式來取代 getElementsByName 即可

function getElementsByName_iefix(tag, name) {

var elem = document.getElementsByTagName(tag);
var arr = new Array();
for(i = 0,iarr = 0; i < elem.length; i++) { att = elem[i].getAttribute("name"); if(att == name) { arr[iarr] = elem[i]; iarr++; } } return arr; }


出處:http://www.dreamincode.net/code/snippet293.htm

IE vs. FireFox系列 - createElement option的問題

因為想要寫個javascript的function可以自動產生設定好時間區間的下拉選單,
所以寫了下面看是正統的function

var newOpt = document.createElement('option');
newOpt.text = text;
newOpt.value = value;

先用firefox測試,沒有問題,

但是換到IE(6跟7)後,卻發現下拉選單是變長了,

但是卻沒有出現項目的文字內容,

所以,在ie下,用newOpt.text跟newOpt.value應該是沒有作用的,

所以要改成如下

var newOpt = document.createElement("option");
var oText = document.createTextNode(text);
newOpt.appendChild(oText);
newOpt.setAttribute("value",value);

變成需要使用createTextNode來建立option標籤內的文字內容,

然後再用setAttribute來設定option中的value屬性值.

引用至:http://www.dotblogs.com.tw/ajun/archive/2008/04/01/2537.aspx