使用jQuery在某些页面上隐藏div

时间:2015-01-19 22:31:17

标签: jquery html

我想在一个以上但不是网站的所有页面上隐藏div。以下解决方案将其隐藏在一个页面上,但如何添加两个或三个特定页面?

原始答案:Hide div based on url

<script language="text/javascript">
$(function(){
      if (window.location.pathname == "mywebsite/Videos.html") {
            $('#navleft').hide();
      } else {
            $('#navleft').show();
      }
 });
</script>

2 个答案:

答案 0 :(得分:6)

只是给出一个条件

$(function(){
      if (window.location.pathname == "mywebsite/Videos.html"||window.location.pathname == "url2.html"||window.location.pathname == "url3.html") {
            $('#navleft').hide();
      } else {
            $('#navleft').show();
      }
 });

答案 1 :(得分:3)

不要使用JavaScript。而是在指示当前页面的<html><body>元素上设置一个类。因此,如果您在索引页面<body class='index'>上。这样,您可以使用CSS切换特定元素的可见性:

/* Hide navigation on index and video pages */
body.index #navleft,
body.videos #navleft {
    display: none;
}

如果您确实希望使用JavaScript,那么您有多种选择,从非常易读非常简洁。接近频谱的可读端是简单地将各种路径名存储在一个数组中,并执行快速查找:

你可以使用非常基本的东西并使用数组:

var pages = [ 
    "/videos.html",
    "/photos.html"
];

$( "#navleft" ).toggle(
    $.inArray( location.pathname, pages ) >= 0
);

$.fn.toggle函数接受一个布尔值,我们可以通过在潜在值数组中查找当前location.pathname并测试返回的索引来生成该值。如果找到了,我们会返回true并且项目仍会显示 - 否则会被隐藏。