Javascript使用onClick事件中的值向元素添加类

Javascript使用onClick事件中的值向元素添加类,javascript,Javascript,我已经拖网了一整天试图解决这个问题,我相信这是简单的,但我会该死的,如果我能找到它 我已经尝试了存档,但似乎无法找到解决我的特定问题的方法,因此,我们将非常感谢您的帮助 我想在单击列表项时为单个元素添加样式。列表项Id和关联的div类是在我的php代码中动态创建的 在我的脚本中,我得到了一个警报框,显示为测试,以显示附加到列表项的onclick事件正在返回正确的值。在本例中,ID和类别为“1995” 但是,当我使用将正确返回的值添加到脚本中时 document.getElementsByClas

我已经拖网了一整天试图解决这个问题,我相信这是简单的,但我会该死的,如果我能找到它

我已经尝试了存档,但似乎无法找到解决我的特定问题的方法,因此,我们将非常感谢您的帮助

我想在单击列表项时为单个元素添加样式。列表项Id和关联的div类是在我的php代码中动态创建的

在我的脚本中,我得到了一个警报框,显示为测试,以显示附加到列表项的onclick事件正在返回正确的值。在本例中,ID和类别为“1995”

但是,当我使用将正确返回的值添加到脚本中时

document.getElementsByClassName(supplyClass).style.display = "none";
在控制台里我得到

“未捕获引用错误:未定义答复\单击”

下面是简短的代码,成功的警告行被注释掉了

函数回复\u单击(supplyClass){
//警报(供应类);
document.getElementsByClassName(supplyClass.style.display=“无”;
}

    桌面系统
洛鲁米普苏姆


当事件处理程序传递所单击元素的
id
时,您需要使用
document.getElementById
查找元素并如下显示为无

函数回复\u单击(supplyClass)
{
警报(供应类);
//document.getElementsByClassName(supplyClass.style.display=“无”;
document.getElementById(supplyClass).style.display=“无”;
}

    桌面系统
洛鲁米普苏姆


文档。getElementsByClassName(supplyClass)
返回元素列表,因此无法直接设置其样式

如果您想为以这种方式返回的所有元素设置样式,那么您可以这样做

const els = document.getElementsByClassName(someClass);

for (let i = 0; i < els.length; i++) {
  els[i].style.display = 'none';
}
const els=document.getElementsByClassName(someClass);
for(设i=0;i
谢谢Felix&Sumeet,正确的代码行如下

document.querySelector('.supply-' + supplyClass).style.display = 'none';
我没有意识到不能用整数来开始类名,所以在supplyClass值后面加了一个连字符supply,效果很好


再次感谢

document.getElementsByClassName(supplyClass).style.display无法工作,因为
getElementsByClassName
返回元素列表。但是,该错误意味着未定义
reply\u click
,如果函数中存在语法错误,则可能会出现这种情况。行本身在语法上是有效的,因此它可能在代码中的其他地方,您没有发布。另外,reply_click(this.id)将返回1995而不是classname。您应该使用
document.querySelector('.+supplyClass.style.display='none',但这与您得到的错误无关。@FelixKling我认为在这种情况下会抛出一个错误,因为他们使用以数字开头的类名。但这也是另一个问题。@Mark_M我认为你是对的:非常确定OP想要找到class
1995
@FelixKling的元素,我同意,但由于他也为ul元素设置了明确的id,所以我不能100%确定你是正确的Felix,谢谢你们的帮助。