Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Применить что-то только к определённому классу (https://javascript.ru/forum/jquery/37094-primenit-chto-tolko-k-opredeljonnomu-klassu.html)

top320 07.04.2013 21:16

Применить что-то только к определённому классу
 
Приветствую,
ситуёвина такова.

есть n-ое кол-во классов

<div class="myclass 123"></div>
<div class="myclass 234"></div>
...
<div class="myclass 456"></div>


по клику на любой из этих дивов вызывается функция.
удалось сделать конструкцию, которая определяет на какой из классов нажал и уже с этим классом вызывать фу-ю

var whotClass = $(this).attr('class').replace('myclass', '');
StartFunct(whotClass);


и вроде так всё хорошо шло... однако возник тупик )
отчего-то не хочет работать вот такая вот вещь:
$('.'+whotClass).text(msg);

и так
$('.'+$whotClass).text(msg);


не подскажите как сделать нечто с классом имя которого передаётся в переменной whotClass?

спасибо.

top320 07.04.2013 21:28

upd:
оказывается он и так не хочет:
$(".myclass 123").text(msg);

если 123 убрать, то всю отлично

upd2:
разобрался
извиняюсь за топик, но может ещё кому пригодится ;)

надо так... тогда скушает
$(".myclass.123").text(msg);

Hoshinokoe 09.04.2013 00:57

top320,

Что за бредовая идея парсить название класса у элемента, чтобы потом опять получить этот же элемент ???

В вашем случае можно передавать сам элемент, т.е $(this) в функцию и дальше с ним делать все действия.
var elem = $(this);
StartFunct(elem);
...
function StartFunct(element) {
    element.text(msg);
}
P.S. Если нужно положить уникальные данные для каждого дива, тогда лучше использовать data аттрибуты.
<div class="myclass" data-classId="123"></div>
var uid = $(this).data("classId"); // вернет 123


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