Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   AddClass к каждому первому элементу (https://javascript.ru/forum/jquery/21762-addclass-k-kazhdomu-pervomu-ehlementu.html)

myocean 22.09.2011 23:02

AddClass к каждому первому элементу
 
Здравствуйте, столкнулся со следующей проблемой...

На странице расположены три таблицы вида:

<table class="my_table">
<tr>
<td>Бла Бла Бла</td>
</tr>
<tr>
...


необходимо первому элементу <tr> каждой таблицы добавить класс, к примеру:

class="tr_my_style"

Так вот, при следующем скрипте:
$(".my_table tr:first").addClass("tr_my_style");


проходит все успешно, но только для первой таблицы...
Как распространить действие скрипта на оставшиеся?

melky 22.09.2011 23:05

$(".my_table tr:first").
*!*
           add(".another_table tr:first").
*/!*
           addClass("tr_my_style");

myocean 22.09.2011 23:16

Спасибо за ответ!
иными словами, единственный выход назначить каждой таблице уникальный класс?

melky 22.09.2011 23:37

нет. где это написано ? я написал псевдокод добавления элемента в коллекцию.


а как вы будете таблицы отбирать - ваше дело )

myocean 22.09.2011 23:41

Ага, но может я чего то все-таки не понимаю :(
У меня может быть от 3-х до n таблиц с классом my_table
Как в таком случае добавить их в коллекцию...
Я полагаю ниже это бред:


$(".my_table tr:first").
  add(".my_table tr:first").
  add(".my_table tr:first").
  addClass("tr_my_style");


Может я еще выразился несколько некорректно:
под словами назначить каждой таблице уникальный класс имел ввиду чтоб все таблицы по умолчанию имели разные классы... и если у таблиц один класс то ничего не выйдет

melky 23.09.2011 03:11

если надо обойти все таблицы и взять с каждой по одной строчке, то писать можно как-то так :

// обходим все таблицы и собираем с каждой по первой строке
var res = $("table").map(function(){  
    // this - таблица
    return $("tr:first", this);
}).get();

// res - array
// превращаем в коллекцию
res = $(res);

// и работаем с ней
res.css('tr_my_style');

sintet 03.02.2013 14:22

самому было необходимо сделать такую выборку, догадался сам, как всегда все просто-
$("table").find("tr:first").css("background","#aaa ");

danik.js 03.02.2013 14:44

дык все проще же
table tr:first-child{
    background: #aaa;
}


Часовой пояс GMT +3, время: 14:17.