JavaScript / jQuery "если" синтаксис условия - PullRequest
3 голосов
/ 13 января 2011

Я пытаюсь оценить класс, чтобы увидеть, содержит ли он некоторый текст в моем обработчике кликов, но я не могу заставить свой код работать правильно. Чего мне не хватает?

Оператор if проверяет, есть ли в классе кликаемого объекта слово "заголовок".

$('[class^=edit_]').click(function(){
    var element = $(this).attr('class');
    var field = element.split(/_(.+)/)[1];
    if ($(this).attr('[class*=headline]'))
    {
        alert("headline");
    }
    else
    {
        alert("not headline");
    };
});

Можно ли сконструировать мое if утверждение с чем-то, что оценивает var field = element.split(/_(.+)/)[1];, поскольку именно там находится информация.

Что-то вроде:

if (element *= "headline"){do this};

Я не уверен, что понимаю все «оценщики», которые существуют в JavaScript, чтобы знать, могу ли я вычислить такую ​​строку.

1 Ответ

4 голосов
/ 13 января 2011

После перечитывания вашего вопроса, есть еще более простой подход, просто проверьте .className для нужной вам строки, используя .indexOf(), например:

if (this.className.indexOf('headline') != -1)

Предыдущий ответ:
Ближайшая версия к тому, что у вас есть, проверка, соответствует ли элемент, соответствующий селектору, .is(), например:

if ($(this).is('[class*=headline]'))

Но здесь есть еще более подходящий метод (если вы проверяете полный класс, а не его часть), вы можете использовать .hasClass() следующим образом:

if ($(this).hasClass('headline'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...