2015-01-19 6 views
3

Я хотел бы скрыть div на нескольких страницах, но не на всех страницах сайта. Следующее решение скрывает его на одной странице, но как я могу добавить две или три страницы?Скрыть div на определенных страницах с помощью jQuery

Оригинальный ответ здесь: Hide div based on url

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

Это идеальная область, где вы могли бы использовать серверные скрипты. – PeterKA

ответ

6

только получением или условие

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

Это отличное и простое решение. Благодарю. –

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, и элемент остается на экране, иначе он будет скрыт.

Смежные вопросы