在这种功能中
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
那么容易抱歉,让你们所有人都在编写精美的代码。
答案 0 :(得分:0)
我假设您想为函数获取任意数量的参数。您可以使用每个被调用函数中的特殊arguments
变量。它是一个类似于数组的对象,它包含传递给函数的每个参数,按照将它们放入调用的顺序。
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,你可以为这些元素添加第二个类,只需更改函数来查找该类。