测试成功,没有问题,给分<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test </title>
<script type="text/javascript">
window.onload=function()
{
var sel=document.body.getElementsByTagName("select");
var k=0;
for(i=0;i<sel.length;i++)
{
for(j=i;j<sel.length;j++)
{
k=i;
if(sel[k].offsetWidth<sel[j].offsetWidth)
{
k=j;
}
}
sel[i].style.width=sel[k].offsetWidth+"px";
}
}
</script>
</head>
<body>
<table border="1">
<tr>
<td>
<select id="sel1">
<option>1 </option>
<option>2 </option>
<option>3 </option>
<option>4 </option>
</select>
</td>
</tr>
<tr>
<td>
<select id="sel2">
<option>11111 </option>
<option>22222 </option>
<option>33333 </option>
<option>44444 </option>
</select>
</td>
</tr>
<tr>
<td>
<select id="sel3">
<option>11111111111111 </option>
<option>22222222222222222222222222</option>
<option>33333333333333 </option>
<option>44444444444444 </option>
</select>
</td>
</tr>
</table>
</body>
</html>
<head>
<title>Test </title>
<script type="text/javascript">
window.onload=function()
{
var sel=document.body.getElementsByTagName("select");
var k=0;
for(i=0;i<sel.length;i++)
{
for(j=i;j<sel.length;j++)
{
k=i;
if(sel[k].offsetWidth<sel[j].offsetWidth)
{
k=j;
}
}
sel[i].style.width=sel[k].offsetWidth+"px";
}
}
</script>
</head>
<body>
<table border="1">
<tr>
<td>
<select id="sel1">
<option>1 </option>
<option>2 </option>
<option>3 </option>
<option>4 </option>
</select>
</td>
</tr>
<tr>
<td>
<select id="sel2">
<option>11111 </option>
<option>22222 </option>
<option>33333 </option>
<option>44444 </option>
</select>
</td>
</tr>
<tr>
<td>
<select id="sel3">
<option>11111111111111 </option>
<option>22222222222222222222222222</option>
<option>33333333333333 </option>
<option>44444444444444 </option>
</select>
</td>
</tr>
</table>
</body>
</html>
解决方案 »
- 如何得到jquery load后的html
- 请教:关于protochart的兼容问题
- 关于ie6的apply
- 请教一个正则表达式
- ajax 实现级联菜单的形式,为什么总执行最后一行代码?
- 请问网站固定位置广告和浮动广告的javascript代码如何实现?百分请教!
- 根据条件生成的input 为什么在JS中取其value的时候是undefined
- 请问csdn导航栏调整宽度时的透明网格条是怎么做的?
- 我这段改变文字大小的JAVASCRIPT脚本哪里出错了? 在线等,急!
- 关于组建IIS全套攻略!!望各位高手参与!!!
- 我要在 所有对象里面加上onclick事件 不知道怎么写
- JavaScript怎么把值写入文本框
td没有设置width 就是你说的要求呀?
没有听明白? 你说的是三列要一样宽吗?
是不是只能用循环?有没有其它的方法?因为我的页面里可能会有上百个这样的<select>,如果循环,怕影响效率
To luojihaidao:
我的需求是要把三个<select>的宽度都设为一样宽,大小就为三个<select>中最大的那个<select>的宽度。
{
var sel=document.body.getElementsByTagName("select");
var w=0;
for(i=0;i<sel.length;i++)
{
if(w<sel[i].offsetWidth) w=sel[i].offsetWidth;
}
var wpx = w+"px";
for(i=i;i<sel.length;i++)
{
sel[i].offsetWidth=wpx;
}
}
<head>
<title>Test </title>
<script type="text/javascript">
window.onload=function()
{
var sel=document.body.getElementsByTagName("select");
var k=0;
a=new Array();
for(i=0;i<sel.length;i++)
{
a[i]=sel[i].offsetWidth;
}
var maxValue=a.sort(sortNumber)[a.length-1]
for(i=0;i<sel.length;i++)
{
sel[i].style.width=maxValue+"px";
}
}
function sortNumber(a,b)
{
return a - b
}
</script>
</head>
<body>
<table border="1">
<tr>
<td>
<select id="sel1">
<option>1 </option>
<option>2 </option>
<option>3 </option>
<option>4 </option>
</select>
</td>
</tr>
<tr>
<td>
<select id="sel2">
<option>11111 </option>
<option>22222 </option>
<option>333330000000000000000000000000 </option>
<option>44444 </option>
</select>
</td>
</tr>
<tr>
<td>
<select id="sel3">
<option>111111s111 </option>
<option>22222d</option>
<option>33d3333333 </option>
<option>4444d444444 </option>
</select>
</td>
</tr>
</table>
</body>
</html>
对ASP.NET和C#有兴趣的朋友,欢迎加入67226009
window.onload=function()
{
var sel=document.body.getElementsByTagName("select");
var k=0;
a=new Array();
for(i=0;i<sel.length;i++)
{
a[i]=sel[i].offsetWidth;
}
var maxValue=a.sort(sortNumber)[a.length-1]
for(i=0;i<sel.length;i++)
{
sel[i].style.width=maxValue+"px";
}
}
function sortNumber(a,b)
{
return a - b
}
</script>当我有上百个<select>的时候,用这种循环特别的慢,要几分钟.....
上面主要这个方法慢
for(i=0;i<sel.length;i++)
{
sel[i].style.width=maxValue+"px";
}
给hmtl元素设置style的时候,循环速度非常慢.