显示/隐藏div可以不用jquery吗?

时间:2016-07-21 13:48:14

标签: javascript jquery html

我有一个现在正在运行的脚本,但是我仍然无法控制页面上的其他脚本...(托管的e-com网站访问受限) - 有没有办法完成这个,但用简单的JavaScript?

var $b = jQuery.noConflict(true);

var d = new Date();
var dayOfWeek = d.getUTCDay();
var hour = d.getUTCHours();
var mins = d.getMinutes();
var status = 'open';

if (dayOfWeek !== 6 && dayOfWeek !== 0 && hour >= 12 && hour < 22)
    status = 'open';
else
    status = 'closed';

if (status=='open')
    $b('.orderby').show();
else
    $b('.orderby').hide();

4 个答案:

答案 0 :(得分:5)

你的代码中只有一小部分jquery

if (status=='open') {
    $b('.orderby').show();
}else{
    $b('.orderby').hide();
}

这可以转换为

if (status=='open') {
    document.querySelector('.orderby').style.visibility = "visible";
}else{
    document.querySelector('.orderby').style.visibility = "hidden";
}

答案 1 :(得分:4)

您可以使用:

var elem = document.querySelector(".elementClass");
var disp = (status == 'open') ? 'block' : 'none';
elem.style.display = disp;

答案 2 :(得分:0)

是。您可以使用querySelectorAll获取元素并循环遍历它们,并添加一个将设置display: none的类。

展示

var el = document.querySelectorAll(".orderby");
for(var k in el){
  el[k].className = el[k].className.replace("hide", "");
}

隐藏

var el = document.querySelectorAll(".orderby");
for(var k in el){
  el[k].className += 'hide';
}

答案 3 :(得分:0)

你可以用这个:

if (status=='open') {
        document.getElementsByClassName('orderby')[0].style.display = "block";
    }else{
        document.getElementsByClassName('orderby')[0].style.display = "none";
    }