读书人

使用Javascript修改使用同一个class的

发布时间: 2012-03-16 16:34:56 作者: rapoo

使用Javascript修改使用同一个class的控件
页面上有若干个元素,使用了同一个class,我能不能通过Javascript修改class里的宽度,达到这若干个元素同时宽度改变的目的呢?

比如下面的代码,我放置一个按钮,可以根据需要同时修改下面3个Textbox的宽度:
<style type="text/css">
.aa{
width:20px;
}
</style>
<input class="aa" name="a1" />
<input class="aa" name="b2" />
<input class="aa" name="c3" />

注:因为各个元素不一定属于同一个childNodes组,而且名字也可能没有规律可言
所以通过循环这些元素来一个个设置style.width,不太可能

请高手指点。

[解决办法]
<style type= "text/css ">
.aa{
width:20px;
}
.bb{
width:40px;
}
</style>

用js循环查找所有class="aa"的textbox,然后把所有class="aa"替换成class="bb"

如果这些textbox都在一个特定的区域,那么就先用正则抓取该区域的所有代码再循环找
如果这些textbox都毫无规律可言,那么就从整个页面的源码里查找...

[解决办法]
代码改下。有点不对,

JScript code
var x = $("test");var y = x.getElementsByTagName("input");for (var i = 0;i < y.length; i++){    if(y[i].className == "aa")    {      y[i].className = "bb";    }}
[解决办法]
JScript code
<style type="text/css">.aa{    width:20px;}</style><input name="a1" class="aa" type="text" /><br /><input name="b2" class="aa" type="text" /><br /><input name="c3" class="aa" type="text" /><br /><input type="button" value="确定" onclick="aa();" /><script language="javascript" type="text/javascript">function aa(){    var styleSheets = document.styleSheets;    var rules = styleSheets[0].rules;    for (var i=0;i<rules.length;i++)    {        if (rules[i].selectorText == ".aa")        {            rules[i].style.width = "200px";        }    }}</script>
[解决办法]
用于firefox

<style type="text/css">
.aa
{
width:20px;
}
</style>

<input name="a1" class="aa" type="text" /><br />
<input name="b2" class="aa" type="text" /><br />
<input name="c3" class="aa" type="text" /><br />

<input type="button" value="确定" onclick="aa();" />

<script language="javascript" type="text/javascript">
function aa()
{
var styleSheets = document.styleSheets;
var cssRules = styleSheets[0].cssRules;
for (var i=0;i<cssRules.length;i++)
{
if (cssRules[i].selectorText == ".aa")
{
cssRules[i].style.width = "200px";
}
}
}
</script>

读书人网 >JavaScript

热点推荐