2010-09-06 249 views
0

我需要使用javascript更改td的宽度。宽度的值将被拉入,然后我需要将其倍数以获得一个百分比。我只需要知道如何写JS到目前为止,我得在这里,但它不工作用js动态更改td宽度

<script language="JavaScript"> 
var divWidth = 66*0.4; 

document.write("<td width="+divWidth+">"); 

document.getElementById("myRow").write("<td width="+divWidth+">"); 

</script> 


<table> 
<tr> 
    <td id="myRow"></td> 
</tr> 

回答

1

我想你想要这样的:

<script type="text/javascript"> 
    var divWidth = 66*0.4; 
    document.getElementById("myRow").setAttribute('width', divWidth);//defaults to pixels 
    //or if you really want this as a percentage 
    document.getElementById("myRow").setAttribute('width', divWidth+'%');//percent 
</script> 


<table> 
    <tr> 
    <td id="myRow"></td> 
    </tr> 
</table> 

但是,有我会在你的代码中调整一些东西。我将脚本标记中的语言属性(现已弃用)更改为type="javascript"。您的TD元素上的idmyRow我会将其更改为反映单元格的内容。

+0

不建议使用建议,样式属性和标签。改用风格。 – Ben 2010-09-06 17:22:56

+0

@Ben - 我同意,尽管在IE中使用CSS的确切行为可能会导致一些挫败感。 – scunliffe 2010-09-06 17:25:05

2

尝试使用jQuery,它是一个Javascript库/框架,使用jQuery可以轻松十倍地执行上面的操作。

使用jQuery,你的代码将是:

$(document).ready(function() { 
    var newWidth = $("#myRow").width(); 
    $("#myRow").width(newWidth*0.4); 
} 

//编辑:

对不起,我有多个错误。

+1

请记住克里斯蒂娜,“4”会被你认为合适的百分比替换。 – Jeff 2010-09-06 17:24:58

+0

是的,他是对的,谢谢杰夫。 :) – 2010-09-06 17:34:26

+0

谢谢你的帮助。非常感激 – kristina 2010-09-07 09:32:11