是否可以在getelementbyid中使用多个可更改的divName?

时间:2013-12-28 02:51:43

标签: javascript getelementbyid

在这种功能中

function someFunction(divName) 
{
    document.getElementById(divName).style.someproperty = 'something'
    document.getElementById(divName).style.someotherproperty = 'somethingelse'
}

这样称呼

onClick = "someFunction('someid')

有什么办法可以在html中指定多个divName吗?

e.g。

onClick = "someFunction('someid','someotherid')

第一个getelementbyid在'someid'上执行,第二个getelementbyid在'someotherid'上执行

最好没有jQuery

编辑:

我不想对这两个元素中的每一个做同样的事情,我想对每个单独的元素做一些不同的事情,但我希望能够在onClick =“...”中指定每个元素。而不是在实际的函数中,因此我不必为两个目标元素的每个组合编写多个函数。

对不起,如果不清楚

答案(事实证明,这很简单):

function someFunction(divName,divName2) 
{
    document.getElementById(divName).style.someproperty = 'something'
    document.getElementById(divName2).style.someotherproperty = 'somethingelse'
}

HTML

 onClick = "someFunction('someid','someotherid')"

当我第一次尝试时,我写了“someFunction('someid,someotherid')”  当它不起作用时,我认为解决方案不像divname1,divname2

那么容易

抱歉,让你们所有人都在编写精美的代码。

4 个答案:

答案 0 :(得分:0)

我假设您想为函数获取任意数量的参数。您可以使用每个被调用函数中的特殊arguments变量。它是一个类似于数组的对象,它包含传递给函数的每个参数,按照将它们放入调用的顺序。

You can do it like this

function someFunction() {
  for(var i = 0; i < arguments.length; i++){
    document.getElementById(arguments[i]).style.someproperty = 'something'
  }
}

但是,对于这种情况,类可能更好,假设您不介意将类附加到目标元素。

答案 1 :(得分:0)

为每个div提供一个类名,例如“yourClass”。现在你将拥有这样的功能:

function someFunction(divClass) {
    var eles = document.getElementsByClassName(divClass); 
    eles.style.someproperty = 'something';
    eles.style.someproperty = 'something';
    for(var i = 0; i< eles.length; i++){
       // do some thing with each element
        eles[i].style.someproperty = 'something';
    }
}

答案 2 :(得分:0)

使参数成为一个数组并循环遍历它。

function someFunction(divIDs)
{
    for (var i = 0; i < divs.length; i++)
    {
        document.getElementById(divIDs[i]).style.someProperty = 'something';
    }
}

答案 3 :(得分:0)

你想要做的是给你想要做的所有元素与一个对所有这些都相同的类,以及一个对所有这些都是唯一的ID。

function someFunction(e) {
  var action = false;
  switch(e.target.id) {
  case 'someid': 
    action = 'something';
    break;
  case 'someotherid': 
    action = 'somethingelse';
    break;
  case default:
    break;
  }
  if(!action) return;
  document.getElementById(e.target.id).style.someProperty = action;
}

然后,您可以将onclick处理程序分配给类:

onClick = "someFunction('theClassName')

如果你有多个你想要做同样事情的元素,而不是使用id,你可以为这些元素添加第二个类,只需更改函数来查找该类。