如何将HTML样式类传递给Javascript函数参数

时间:2015-10-16 09:18:37

标签: javascript html css

有没有办法可以将所有样式类传递给函数?

样式类代表一个表行,我试图隐藏所有行,但被点击的行除外。 (下面的代码,如果它不在代码标签中,我道歉)

function toggle_visibility(id, param2, param3)
{
    var getClasses = document.getElementsByClassName(id);
    var getClasses2 = document.getElementsByClassName(param2);
    var getClasses3 = document.getElementsByClassName(param3);

    for (var i = 0; i < getClasses.length; i++) 
    {
        if(getClasses[i].style.display == 'none')
        {
            getClasses[i].style.display = '';
        }
    }

     for (var i = 0; i < getClasses2.length; i++) 
     {
        if(getClasses2[i].style.display == '')
        {
            getClasses2[i].style.display = 'none';
        }
     }
     for (var i = 0; i < getClasses3.length; i++) 
     {
        if(getClasses3[i].style.display == '')
        {
            getClasses3[i].style.display = 'none';
        }
     }
}

代码有效,但目前不可扩展,所以我想传入每个类,然后使用'if'语句搜索类。这有可能吗?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用参数变量:

function toggle_visibility()
{
    var first = true;
    var i,j, getClasses;

    for (i = 0; i < arguments.length; i++) {
        getClasses = document.getElementsByClassName(arguments[i]);

        for (j = 0; j < getClasses.length; j++) 
        {
            if(getClasses[j].style.display == (first ? 'none' : ''))
            {
                getClasses[j].style.display = (first ? '' : 'none');
            }
        }
        first = false;
    }
}

有了这个你可以使用任意数量的参数调用你的函数,第一个将被显示而所有其他的被隐藏

答案 1 :(得分:0)

创建DOM中所有可用类的数组,并将其作为参数传递给函数。

var All= document.getElementsByTagName("*");
var allClasses=[];
for(var i=0; i< All.length;i++){
  if(All[i].className){
    allClasses.push(All[i].className);
  }
}

function toggle_visibility(allClasses)
{
   //do whatever you want!
}