JavaScript - 不存在时更改样式

时间:2010-08-28 15:59:24

标签: javascript

我有一个漫游页面元素并调整字体大小的函数

function changebuttonsize (sz)
{
  var z = document.body.getElementsByTagName("*");  
  for (var i=0; i<z.length; i++)
  {
    if (z[i].id=="BTSz")
    {
      z[i].style.fontSize = sz;
    }
  }
}

我用它来改变以下按钮的大小

<input id="BTSz" type="button" style="font-size:16px;" value="Back"  onclick="history.go(-1);"/>
<input id="BTSz" type="button" style="font-size:16px;" value="Index" onclick="location.href='Index.html';"/>
<input id="BTSz" type="button" style="font-size:16px;" value="Home"  onclick="location.href='Introduction.html';"/>

问题是我必须在按钮定义中包含样式子句,否则更改不会生效。有没有办法纠正这个?我是否必须以某种方式为元素创建样式区域?

3 个答案:

答案 0 :(得分:0)

这个怎么样?

function changebuttonsize (sz)
{
  var z = document.body.getElementsByTagName("*");  
  for (var i=0; i<z.length; i++)
  {
    if (z[i].id=="BTSz")
    {
      z[i].style = 'font-size:'+sz+'px';
    }
  }
}

答案 1 :(得分:0)

你有没有考虑过使用jQuery?使用jQuery,您可以在DOM中选择特定项(使用选择器)并向任何内容添加类。

答案 2 :(得分:0)

对几个元素的“id”属性使用相同的值是各种奇怪的处方。我不确定它会导致你遇到的任何问题,但是在寻找解决方案时,最好还是解决这个问题。

通常,“class”属性用于存储此类“特征”值。如果您正在为HTML5编码,也可以使用“data-”属性:

<input type='button' data-MikeD='BtNSz' ... >

然后使用getAttribute获取值:

  var value = theButton.getAttribute("data-MikeD");