2014-02-10 3 views
0

Мой вопрос очень общий: Когда динамические классы добавляются к элементу (например, через любые надстройки jQuery-ui), и уже есть классы в этом элементе, добавляется добавленный динамически добавленный класс или добавлено к списку классов?Динамические классы: они добавлены или добавлены?

Почему вопрос основан на следующем: Я пытаюсь выбрать все элементы с классом dymanic, начиная с идентификатора (например, title_), поэтому я просто пишу $ ('[class^title_]').

Моя проблема заключается в возможности другого разработчика, поставляемая вместе и добавив $ .datepicker (например) к этому элементу, тем самым добавив еще один класс/ES к этому элементу, и если эти классы получают предваряется к элементу - there goes my selector

не

заранее спасибо

Вот моя ситуация: Показ ColdFusion cfloop создания флажков:

<cfset lbls = {"test1" = "Test one","test2" = "Test two","test3" = "Test three","test4" = "Test four","test5" = "Test five"}> 
    <cfloop collection=#lbls# item="num"> 
     <cfoutput> 
     <tr> 
      <td><label>#lbls['#num#']#</label> 
      <td><input type="checkbox" class="form_test test_#num#" value="#num#" name="test_yes" ></td> 
      <td><input type="checkbox" class="form_test test_#num#" value="#num#" name="test_no" ></td> 
     </tr> 
    </cfoutput> 
    </cfloop> 

Я творю динамические флажки (да или нет) для 5 категорий динамически (зацикливание над списком coldfusion для их создания) [они не являются радиокамерами, чтобы позволить пользователю снять отметку со всех]. ТАК, как я могу ссылаться на «другую»? Я не могу использовать братьев и сестер(), так как они находятся в отдельном td. Я мог бы пойти к родителям и выбрать родителей ('th'). Children (': checkbox'). Not (this), но я надеялся на более короткий путь.

+3

Ваш селектор выглядит как хак, а не правильная практика. И тот факт, что вам нужно сделать такой выбор, вероятно, означает, что у вас проблемы с дизайном. –

+0

@dystroy Я ценю критику, но вы можете посоветовать лучший вариант выбора. – Rob

+0

Alnitak сделал. Но, не зная полной проблемы, я едва ли могу дать решение. На ум приходят умные классы ('$ ('. Title_a, .title_b, .title_c')'), которые были бы более эффективными –

ответ

2

Они прилагаются, но вы не должны полагаться на него.

Лучше исправить это необходимо прикрепить общий идентифицирующий класс, и более конкретный класс:

<elem class="title title_foo"> ... </elem> 

, а затем выбрать для первого, используя минимальный селектор класса, если вы хотите, чтобы все такие элементы:

$('.title') 

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

+0

проголосовали за ответ на вопрос, но я не думаю, что ваш совет применим к моей ситуации. Спасибо в любом случае – Rob

+1

@Rob, пожалуйста, не стесняйтесь, почему это может не распространяться. Как сказал dystroy, прибегая к тому, чтобы полагаться на порядок записей в атрибуте класса, звучит как проблема дизайна. – Alnitak

+0

Я не хотел беспокоиться, но с тех пор, как вы спросили :) Я добавляю его к моему вопросу – Rob

Смежные вопросы