jsp的,select 控件中,用innerHTML来显示下拉数据,总是有问题。
如:
jsp中.<select id="test">
</select>
js中.var obj_td = document.getElementById("test");
var data = '<option value=2>222</option>'
obj_td.innerHTML = data;
alert(obj_td.innerHTML);
最后,obj_td.innerHTML弹出的框中,显示的是222</option>,
test中,也就显示不出来。1.该如何处理?2.反而用innerText可以弹出<option value=2>222</option>的框,
但是显示不出来内容到下拉框中。PS:
data有可能是一串,如<option value='-1'>-请选择-</option><option value='10'>指定专营店</option><option value='21'>销售点</option><option value='64'>沟通代理</option>所以,单独一个个的解析出来用option来搞,有些麻烦(dwr用java代码来查询的数据),不想用这种方法。
如:
jsp中.<select id="test">
</select>
js中.var obj_td = document.getElementById("test");
var data = '<option value=2>222</option>'
obj_td.innerHTML = data;
alert(obj_td.innerHTML);
最后,obj_td.innerHTML弹出的框中,显示的是222</option>,
test中,也就显示不出来。1.该如何处理?2.反而用innerText可以弹出<option value=2>222</option>的框,
但是显示不出来内容到下拉框中。PS:
data有可能是一串,如<option value='-1'>-请选择-</option><option value='10'>指定专营店</option><option value='21'>销售点</option><option value='64'>沟通代理</option>所以,单独一个个的解析出来用option来搞,有些麻烦(dwr用java代码来查询的数据),不想用这种方法。
解决方案 »
- 关于doucument.write与window.onload
- widget到底为何物?
- 透明的图片
- 如何用javascript实现返回上一页的功能
- javascript 加入options到select中
- 如何用javascript计算两个日期之间的时间间隔
- 用window.showModalDialog弹出窗口后,没办法找到父窗口,报window.opener.。。。。 为空
- 这句document.write这么写啊为什么老是提示缺少")"
- 关于document.write的问题
- 怎样将window.showModelessDialog弹出的窗口总在最前面。
- js奇怪的问题
- 谁帮我改一下这个代码!谢谢
2.如果父类中有其他对象,不就挂了嘛。
obj_td.options[0]=new Option("222","2");alert(obj_td.innerHTML);
如果要innerHTML的话,可以用jquery
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>主页面</title>
<script src="jquery.js"></script>
<script type="text/javascript">
$(function(){
var opt = "<option value='-1'>-请选择-</option><option value='10'>指定专营店</option>";
$("#sel").html(opt);
});
</script>
</head><body>
<form>
<select id="sel"></select>
</form>
</body>
</html>
var data = '<option value=2>222</option>'
obj_td.innerHTML = data;
alert(obj_td.innerHTML);不能这么用,要用innerHTMl即 obj_td.parentNode.innerHTML = "<select id='test'><option value='-1'> 像写的sd5816690要么用var obj_td = document.getElementById("test");
obj_td.options[0]=new Option("222","2"); 像shan1119写的。建议用第一种。
同时里面有建议更换的方式。而下面的文章里,据说是完美解决的方案,我没时间试验,楼主有兴趣自己试一下
http://www.zhanz5.com/a/javascriptjiaocheng/2010/0515/13391.html
<select id="test"></select>
<script>
var modSelectInnerHTML = (function (){
var temp = document.createElement('a');
return function (select, html){
select.options.length = 0;
temp.innerHTML= '<select>' + html + '</select>';
var options = temp.getElementsByTagName('option');
while (options[0] && select.appendChild(options[0]));
};
})();var select = document.getElementById('test');
var options = '<option value="-1">-请选择-</option><option value="10">指定专营店</option><option value="21">销售点</option><option value="64">沟通代理</option>';modSelectInnerHTML(select, options);
</script>
只能用select的parentNode来讲select再重新包一次。
这个BUG确实