我有一个布尔变量。它存储在隐藏的输入字段中。基本上,如果用户已登录,则为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 :(得分:3)
你可以简单地循环遍历元素而不是仅仅取第0个。
var buttons = document.getElementsByClassName('project_download_btn');
for(var i=0; i< buttons.length; i++){
buttons[i].hidden = true;
}
答案 1 :(得分:0)
document.getElementsByClassName
返回数组,所以你感兴趣的是:
document.getElementsByClassName('project_download_btn')[0]
答案 2 :(得分:0)
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;
}
}
答案 3 :(得分: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;
}
}