自知其无知
不懂,慢慢懂。
posts - 2,comments - 2,trackbacks - 0
标准的做法就是 :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    
<title>Untitled Page</title>
</head>
<body onload="f()">
<select id="s">
    
<option value="55">就是这样的。</option>
</select>
</body>

<script>
function f(){
    
var s = document.getElementById('s');
    
for(var i=0; i<10; i++){
        
var option = document.createElement('option');
        
//s.insertBefore(option,s.options[0]);
        /* 标准做法使用 s.options.add() */
        s.options.add(option)
      
/* 非标准做法就是用 insertBefore 或者 appendChild */
      
//s.appendChild(option);
       option.text = 'hello' + i;
      
//option.innerHTML = 'Hello' + i;
       option.value = i;
  
//  s.appendChild(option);
    }

    
/* 当且仅当用 s.options.add() 添加项时才有效 */
    s.selectedIndex 
= 4 ;
}

</script>
</html>


也就是说,标准的做法是 s.options.add();
但是如果你一定要用 s.appendChild(option);
注意了,你只能用如下两种方式之一:
1.  s.appendChild(option);
     option.text = 'hello world';
     option.value =3;
   也就是,一定要先添加到 select 中,然后再为 option 赋值。否则在 FF 下是显示正常的,但是在 IE6 中显示的是空白

2. 如果你要讲 option.text 和 option.value 的赋值放在前面,那么请用 option.innerHTML 而不是 option.text
  如下:
    option.innerHTML = 'hello world';
    opion.value = 3;
    option.appendChild(option);


又看了一个牛人的博客,得到了第三种解决方式。
 

var op=document.createElement("option");      // 新建OPTION (op)
op.setAttribute("value",0);          // 设置OPTION的 VALUE
op.appendChild(document.createTextNode("请选择---")); // 设置OPTION的 TEXT

select.appendChild(op);           // 为SELECT 新建一 OPTION(op)


也就是所,你的 op 的text 是通过 appendChild(.... createTextNode ) 来进行的。。
===========================
转自:http://blog.csdn.net/welcomejzh/archive/2008/10/28/3168820.aspx
摘抄如下:
    
/* 
* 参数 : 
* textValue: 文本值( 欲新建文本单元格文本值 ) 
* idName    : ID 值 ( 欲新建文本单元格ID ) 
*/
 
function createTextE(obj,idName,textValue)

var span=document.createElement("span"); 
span.setAttribute(
"id",idName); 
span.appendChild(text1
=document.createTextNode(textValue)); 
obj.appendChild(span); 

}
 

/* 
*     用于为特定单元格置入 INPUT类型 元素(新建) 
* 参数 : 
*     obj : 欲新建 INPUT 元素的宿主单元格对象 
* textValue: 文本值( 欲新建文本单元格文本值 ) 
* idName    : ID 值 ( 欲新建文本单元格ID ) 
*/
 
function createInputE(obj,idName,inputType,inputValue)

var span=document.createElement("span"); 
span.setAttribute(
"id",idName); 
var input=document.createElement("input"); 
input.setAttribute(
"type",inputType); 
input.setAttribute(
"value",inputValue); 

span.appendChild(input); 
obj.appendChild(span); 
}
 

/* 
* 用于生成SELECT元素 
*/
 

function createSelectE(obj,idName)

var span=document.createElement("span"); 
span.setAttribute(
"id",idName); 
var select=document.createElement("select");     // 新建SELECT元素 

var op=document.createElement("option");      // 新建OPTION (op) 
op.setAttribute("value",0);          // 设置OPTION的 VALUE 
op.appendChild(document.createTextNode("请选择---")); // 设置OPTION的 TEXT 

select.appendChild(op);           
// 为SELECT 新建一 OPTION(op) 

span.appendChild(select); 
obj.appendChild(span); 
}
 

-------------------------------------------------------------------- 

实用例子 

var index=0;  
function addRow()
index
++
// 要增删行的TABLE (tbody) 
= document.getElementById("omain"); 

objRow 
= t.insertRow(0);      // 在TABLE中增加ROW,也即<TR> 

objCell
=objRow.insertCell(0);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","goodsid"); 
createTextE(objCell,
"goodsid",index); // 商品编号 goodsid 


objCell
=objRow.insertCell(1);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","goodsname"); 
createSelectE(objCell,
"goodsname"); 


objCell
=objRow.insertCell(2);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","price"); 
createTextE(objCell,
"price","2.3(单价)"); 

objCell
=objRow.insertCell(3);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","count"); 
createInputE(objCell,
"count","text",index); // 订购天数 

objCell
=objRow.insertCell(4);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","dcount"); 
createInputE(objCell,
"dcount","text",index); // 每天数量 

objCell
=objRow.insertCell(5);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","totleprice"); 
createTextE(objCell,
"totleprice","总价"+index); // 总价 

objCell
=objRow.insertCell(6);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","send"); 
createTextE(objCell,
"send","获赠"+index); //  

objCell
=objRow.insertCell(7);     // 在行中增加单元格 也即<TD> 
objCell.setAttribute("id","bdel"); 
createInputE(objCell,
"bdel","button","删除"+index); 


}
 

posted on 2008-12-15 22:27 CopyHoo 阅读(4968) 评论(0)  编辑  收藏 所属分类: Java Web

只有注册用户登录后才能发表评论。


网站导航: