jQuery ID поиска для определенного текста - PullRequest
0 голосов
/ 26 октября 2010

Я ищу способ поиска идентификатора по текущему нажатому элементу.

Пример:

$('.t_element').click(function(){
            if(!$('.t_element [id*=meta]')) {
                transModal($(this));
                translateText();
            }
        });

Мне нужно сказать, что если идентификатор элемента, по которому щелкнули мышью, не содержит слова «мета», тогда продолжите выполнение сценария, но это не работает.

Извините, если это сбивает с толку.

Спасибо! Деннис

Рабочий пример:

if (!$(this).is('[id*=meta]')) {
    transModal($(this));
    translateText();
}

Ответы [ 3 ]

2 голосов
/ 26 октября 2010

Если идентификаторы элементов не будут меняться, тогда я просто включу тест в селектор, чтобы вы не назначали ненужные обработчики .click().

$('.t_element:not([id*=meta])').click(function(){
    transModal($(this));
    translateText();
});

Это использует селектор :not() вместе с атрибут содержит селектор для предотвращения назначения обработчика элементам, в которых идентификатор содержит meta.

1 голос
/ 26 октября 2010

Версия Сарфраза должна работать.Другой метод использует .is():

if ($(this).is('[id*=meta]')) {
    transModal($(this));
    translateText();
}

Или, как говорит Патрик, если вы хотите, чтобы not действовал, если элемент имеет идентификаторсодержащий "мета":

if ($(this).not('[id*=meta]')) {
    transModal($(this));
    translateText();
}
1 голос
/ 26 октября 2010

Попробуйте с length вот так:

$('.t_element').click(function(){
   if($('[id*="meta"]', $(this)).length === 0) {
     transModal($(this));
     translateText();
   }
});

Или:

$('.t_element').click(function(){
   if($(this).attr('id').indexOf('meta') <= -1) {
     transModal($(this));
     translateText();
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...