2016-06-13 3 views
0

Я пытаюсь добавить класс к ребенку с помощью jquery только в том случае, если все дочерние элементы родительского класса уже не содержат класс. Я не могу понять, что я делаю неправильно:Если у ребенка нет класса add class

https://jsfiddle.net/54988qdb/

<style type="text/css"> 
.active-tag { 
    color: red; 
} 
</style> 

<div class="tagcloud"> 
    <a class="all" href="#all">All</a> 
    <a class="test1" href="#1">1</a> 
    <a class="test2" href="#1">1</a> 
    <a class="test3" href="#1">1</a> 
</div> 

<script> 
    if (!$('.tagcloud a').hasClass('active-tag')) { 
    $('.all').addClass('active-tag'); 
    } 
</script> 
+1

Вы забыли включить jQuery в свою скрипту. – j08691

+0

Он работает очень хорошо (https://jsfiddle.net/72nc412d/), когда вы включаете jQuery и помещаете скрипт внутри блока onLoad (хотя в вашем дословном примере, не обязательно). –

+0

Bwhahaha! О, мой. Спасибо. Лол. Я работаю над этой проблемой (большую связанную с этим) в течение трех дней. Я думаю, что мой мозг немного обжарен. – Heather

ответ

0

@ j08691 ответил на вопрос. Я забыл определить jquery в моем jsfiddle (facepalm).

0

Вы могли бы упростить вещи, используя длину селектора JQuery:

if(! $('.tagcloud .active-tag').length) { 
    $('.all').addClass('active-tag'); 
} 

редактировать:

Ваша скрипка не работает, потому что jQuery не был включен.

+2

Не объясняет, что случилось. –

+0

Спасибо. Я попробую это. – Heather