如何选择具有相同类名的所有元素
How can I select all elements with the same class name?
我有一个布尔变量。它存储在一个隐藏的输入字段中。基本上,如果用户已登录,则为false
,如果未登录,则为true
。
有下载按钮,将链接到文件下载。我的目标是使它,如果他们没有登录,按钮将不会显示,链接将无法工作(这将是很好的有一个警告说,他们需要登录或什么的,但这可能会比它的价值更多的努力)。
我有一个函数执行主体的onload
:
function hide_download_btns(){
if (document.getElementById('download_btn_var_input').value == "true") {
document.getElementsByClassName('project_download_btn').item(0).hidden = true
}
}
我的问题是它要求第n项.item(0)
。这是它选择在其上执行函数的div的地方,但是,我希望函数影响所有 div
的类名'project_download_btn'。
我不是jQuery的粉丝,所以如果可能的话最好避免使用它。
可以简单地遍历元素,而不是只取第0个。
var buttons = document.getElementsByClassName('project_download_btn');
for(var i=0; i< buttons.length; i++){
buttons[i].hidden = true;
}
if (document.getElementById('download_btn_var_input').value == "true") {
var el = document.getElementsByClassName('project_download_btn');
for (var i = 0; i < el.length; i++) {
el[i].hidden = true;
}
}
document.getElementsByClassName
返回数组,所以您感兴趣的是:
document.getElementsByClassName('project_download_btn')[0]
遍行包含下载按钮的每个div
,并将hidden
设置为true
:
if (document.getElementById('download_btn_var_input').value == "true") {
var button_divs_array = document.getElementsByClassName('project_download_btn');
for (var i = 0; i < button_divs_array.length; i++) {
button_divs_array[i].hidden = true;
}
}
相关文章:
- 具有相同类的jquery-click元素
- 使用jQuery创建具有不同类名或ID的多个元素
- 对具有相同类级别的不同li元素进行排序
- 计算具有相同类的元素的数量-jquery
- 显示/隐藏具有不同类的li元素
- 谷歌自动完成无法处理具有相同类名的多个元素
- 是什么阻止querySelectorAll处理此代码中具有相同类的所有元素
- Internet Explorer CSS类样式没有'如果存在具有相同类名的其他元素,则不适用
- 对于具有相同类的多个元素,只影响jquery中单击的元素
- 使用 .each 循环遍历 Backbone View 中具有相同类的元素
- 隐藏具有相同类名的所有元素
- 如何包装彼此相邻且具有相同类的所有元素
- 如何在具有相同类的多元素中找到属性
- push 方法将元素添加到数组中不起作用,同时获取具有相同类的元素的 ID 和值
- Jquery .on('click') 奇怪的行为 - 选择所有具有相同类名的元素
- 仅当具有相同类的元素的中间使用 jQuery 航点到达视口时,才淡入具有相同类的元素
- JavaScript 将事件添加到相同类名的元素
- 在 jquery 中更改具有相同类的多个 html 元素中的文本
- Javascript - 将唯一的元素 id 添加到具有相同类名的多个元素
- 获取jquery/css/javascript中相同类元素的最小宽度