Javascript 将Html类附加到元素

Javascript 将Html类附加到元素,javascript,html,css,Javascript,Html,Css,我昨天问了一个问题。这个名字是不言自明的,然而,在尝试了几个小时的新事物并失败后,我决定研究一种不同的方法。以下是我们的想法: 单击该按钮将向元素附加新类 通过这样做,我们将使用css中的“display”函数切换列的可见性 我有以下HTML元素: echo "<td class =\"development\" id = 'tag$i'>test1</th>"; echo "<td class =\"development\" id = 'tag$i'>

我昨天问了一个问题。这个名字是不言自明的,然而,在尝试了几个小时的新事物并失败后,我决定研究一种不同的方法。以下是我们的想法:

  • 单击该按钮将向元素附加新类
  • 通过这样做,我们将使用css中的“display”函数切换列的可见性
我有以下HTML元素:

echo "<td class =\"development\" id = 'tag$i'>test1</th>";
echo "<td class =\"development\" id = 'tag$i'>test2</th>";
echo "<td class =\"development\" id = 'tag$i'>test3</th>";
这就是我需要你帮助的地方。我建议使用一个按钮,单击该按钮时将运行一个JavaScript函数,该函数可以将“.hide”类附加到td标记中

<button onclick="addCss()">Click me</button>
点击我

我不知道如何编写JavaScript,如果我需要传递任何参数,例如
标记的id。

使用jQuery,可以在addCss函数中添加:

$('td').addClass('hide');
注意:附加类名的“第一个”后面的空格很重要

为什么如果您有类名“class1”并附加“class2”-它将导致“class2”

通过添加空格,它将生成“class1 class2”,并被识别为两个独立的类

<button onclick="document.getElementById('yourId').className += ' ClassName';">Click me</button>
点击我
如果你想找到更好的解决方案

<script>

function addCss(element) {   
document.getElementById(element).className += ' ClassName'; 
}

</script>

函数addCss(元素){
document.getElementById(element).className+='className';
}

然后像最初那样调用函数。您甚至可以为类名本身添加一个参数。

以覆盖类
文档。getElementById(“id”).className=“newclass”
添加一个新类
document.getElementById(“id”).className+=“另一个类”

函数addCss(){
document.getElementById(“b”).className=“隐藏”;
}
函数newCss(){
document.getElementById(“b”).className=“show”;
}
正文{
字号:3em;
背景:蜜露;
}
.隐藏{
显示:无;
}
.表演{
显示:表格单元格;
}

A.
B
C
D
隐藏B细胞

show B cell
看起来此方法仅允许我将隐藏类附加到一个“”tag@user3272303每个都有相同的id吗?我假设id='tag$I'每次递增,因此应用不同的id。我不认为元素可以有相同的id,它不会给出一个错误,但它也不会工作。元素可以有相同的id。这会奏效的。元素是否应该具有相同的id?不,它们应该是独一无二的。我已经更新了我的代码以使用.GetElementsByCassName而不是ID。这很奇怪,因为当我尝试使用相同ID时,只有第一个ID被选中…请按照问题中的要求解释否决票,这将隐藏td标记。不是否决票,但可能是因为(a)OP没有指定jQuery;(b)将jQuery包含在这样一个琐碎的任务中并不是好的做法
<button onclick="document.getElementById('yourId').className += ' ClassName';">Click me</button>
<script>

function addCss(element) {   
document.getElementById(element).className += ' ClassName'; 
}

</script>