Прежде всего, если вы решите добавить класс в ваш HTML, сделайте это так
<p class="foo">ClickMe</p>
<div class="foo"">
###somedata####
</div>
Во-вторых, ваш код jQuery скрывает ВСЕ элементы div, потому что вы выбираете все элементы div! Потому что $('div')
выбирает все элементы div на странице HTML
Вы можете либо скрыть все элементы div, имеющие класс "foo", который будет:
$('p').on("click",function(){
$('div.foo').hide();// hides all the div's that have the class foo
});
Но я бы предпочел сделать это гораздо более динамично:
$('p').on("click",function(){
var classOfP=$(this).attr("class");
var divSelector = "div."+classOfP;
$(divSelector).hide();
});
Итак, что это делает, он берет класс элемента p, на который вы нажали, и скрывает все div, которые имеют один и тот же класс. С этим вы можете структурировать свой код намного больше.
И еще одна вещь, которую я бы предложил - использовать .on("click",...)
, потому что событие будет срабатывать каждый раз, а также, если оно будет добавлено в купол после создания. И .on()
- это новый «стандарт» для обработки событий, начиная с jQuery 1.7