При тестировании с использованием hasClass
не включайте .
(точка).
Что касается более простого способа, вы можете сократить его, но использование hasClass
, вероятно, лучший способ.
Я предполагаю, что классы имеют приоритет (поэтому последние в серии if
имеют приоритет над другими, если существует более одного класса)? Или вы хотите поддерживать несколько «компонентов»?
Вот более эффективная версия, которая лучше показывает, что происходит:
var currentType, div = $(my_div);
// text_component, image_component, tagged_component
if (div.hasClass('tagged_component')) currentType = 'tagged_component';
else if (div.hasClass('image_component')) currentType = 'image_component';
else if (div.hasClass('text_component')) currentType = 'text_component';
else currentType = 'component';
var dialog_box = $('div[id^='+currentType+'_dialog]');