2016-02-04 6 views
0

Я пытаюсь добавить еще один класс в свои divs, используя javascript, но он не работает. Я должен назвать «летних» класса, потому что я несколько подобных таблиц с DIV «mydiv» Я не хочу, чтобы изменитьдобавить еще один класс на несколько div

вот JS


$(".olds").next(tr).next(td).find(.mydiv).addclass("plop");

здесь является HTML

<table> 
    <tr><th><span class="olds">blaa</span></th></tr> 
    <tr><td> 
    <div class="mydiv"></div> 
    <div class="mydiv"></div> 
    <div class="mydiv"></div> 
    <div class="mydiv"></div> 
    </td></tr> 
</table> 

и вот что я хочу с помощью «addclass»

<table> 
    <tr><th><span class="olds">blaa</span></th></tr> 
    <tr><td> 
    <div class="mydiv plop"></div> 
    <div class="mydiv plop"></div> 
    <div class="mydiv plop"></div> 
    <div class="mydiv plop"></div> 
    </td></tr> 
</table> 
+0

правильный синтаксис для добавления класса является 'addClass()' – stark

+0

Метод следующий() работает только на * братьев и сестер * (и ваш элемент «дети» не имеет братьев и сестер). – nnnnnn

ответ

2

у вас есть небольшая ошибка. Это addClass, а не addclass. Вы также должны заключать имена элементов в кавычки.

https://api.jquery.com/addclass/

Одно из решений состоит, чтобы пройти вверх по DOM, находя ближайший таблицу, а затем перемещения вниз с помощью метода find.

$(".olds").closest("table").find(".mydiv").addClass("plop");
.plop { background: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr><th><span class="olds">blaa</span></th></tr> 
 
    <tr><td> 
 
    <div class="mydiv">Div 1</div> 
 
    <div class="mydiv">Div 2</div> 
 
    <div class="mydiv">Div 3</div> 
 
    <div class="mydiv">Div 4</div> 
 
    </td></tr> 
 
</table>

0

Ваш JS не смогут найти некоторые объекты, как они будут нуль. Попробуйте один

$(".olds").next("tr").next("td").find(".fofo").addClass("plop"); 
Смежные вопросы