Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Split return False? (https://javascript.ru/forum/jquery/20985-split-return-false.html)

tarya 24.08.2011 22:59

Split return False?
 
Подскажите друзья такую вещь:

Нужно сделать проверку на вероятность в атрибуте элемента запись нескольких классов.

Например есть элемент:

<div class="fedya"></div>
<div class="fedya vasya"></div>


Если я буду делать проверку:

switch($(object).attr("class")){....


То ниже класс fedya найти (case "fedya ":) реально, а вот попадание "fedya vasya" уже нет. Для обхода этой проблемы я решил делать проверку через Сплит:

if($(object).attr("class").split(" ")){....


Но мне всегда возвращается ТРУ даже если там всего один класс, и нечего разрывать чтоб вернуть массив.

Подскажите как обойти данную проблему. По факту мне нужно через "switch" прокатить класс который есть у элемента, и сделать соответсвующую зарубку, если же классов два или более делать и по ним.

Спасибо.

Sweet 24.08.2011 23:19

if($(object).attr("class").split(" ").length > 1){....

tarya 24.08.2011 23:37

Ага, спасибо. Почему бы сразу не возвращать фолз.

Спасибо за совет!

B@rmaley.e><e 24.08.2011 23:43

Цитата:

Сообщение от tarya
Почему бы сразу не возвращать фолз.

Потому что работа функции должна быть интуитивно понятной и удобной. split, как намекает название, разбивает строку на массив подстрок. Как-то нелогично, неудобно и странно возвращать в одном случае массив, а в другом логическое значение.

В Вашем случае вообще нужно только проверить строку на наличие подстроки (здравствуй, indexOf), но нет, куда круче разбить строку по искомой подстроке и посмотреть количество элементов разбиения.

bret 25.08.2011 00:09

А варианты с .hasClass или .is не подходят?

melky 25.08.2011 01:18

Цитата:

Сообщение от bret (Сообщение 122239)
А варианты с .hasClass не подходят?

было бы красивее и удобнее, это да. только для его сложно в реализации,мне кажется


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