2015-02-11 2 views
0

Я пытаюсь скрыть класс под названием «детали» на всех страницах одного события, но не на главной странице событий.Как скрыть определенный класс span на странице с динамическим идентификатором?

Главная страница мероприятия demosite.com/events/ Отдельные страницы событий: demosite.com/events/?event_id=2.

Я пробовал с псевдо-классами css, но не могу заставить его работать. Я пытаюсь это с помощью javascript, но он не работает - поскольку он скрывает класс «details» на обеих страницах.

Это то, что я пробовал до сих пор.

$(function(){ 
    var url = document.location.href; 

    if (url.toLowerCase().indexOf('http://demosite.com/events/') >= 0) { 
    $('.details').hide(); 
    } else { 
    $('.details').show(); 
    } 
}); 
+0

Если вы используете jQuery, добавьте тег к вашему вопросу. – j08691

+1

не следует ли проверять, содержит ли URL-адрес 'event_id ='? Мне кажется, что он всегда будет содержать 'http: // demosite.com/events /', но параметр строки запроса будет необязательным ... – ochi

+1

Ваша текущая версия соответствует обеим страницам. Добавьте '? Event_id =' в строковый аргумент в 'indexOf()', как в '.indexOf ('http://demosite.com/events/?event_id=')'. –

ответ

1

Все страницы будут включать demosite.com/events - вы ищете для страниц, которые также не имеют event_id с.

if (document.location.search.indexOf('event_id=') >= 0)) 
    $('.details').hide(); 
} else { 
    $('.details').show(); 
} 
1

Что вам нужно сделать, это посмотреть, есть ли параметр, передаваемый в URL-адрес, и затем скрыть на нем. Так вот Javascript функция, чтобы получить параметр и чек на него:

<script> 
$(document).ready(function() { 
    var eventid = getParamterByName('event_id'); 
    if (eventid != "") { 
     $('.details').hide(); 
    } 
    else { 
     $('.details').show(); 
    } 

}); 

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 


</script> 
Смежные вопросы