2009-12-11 2 views
1

У меня есть следующий код:Найдите класс щелкнул элемент с помощью Jquery

$(".perf-row").click(function(e) { 
     if (e.target.tagName.toLowerCase() == "a") { 
     pageTracker._trackPageview($(this).attr("rel")); 
     return true; //link clicked 
     } else { 
     window.open($(this).attr("rel"));return false; 
     } 
    }); 

к условному даному из if (e.target.tagName.toLowerCase() == "a") я хотел бы добавить «или класс равен цене».

Я не совсем уверен, как это сделать, я не могу найти класс элемента с щелчком (который будет td внутри строки таблицы).

я пытался $(this).class, $(this.class) но не работают ....

Помощь будет весьма признателен!

ответ

0

Вы могли бы объединить оба тесты в одну команду JQuery:

if($(e.target).is('.price, a')) { .... } 

Это тесты, если цель либо имеет класс price или является a тег, или оба. Если вы хотите, чтобы проверить, что это был a тег и имел price класс, вы бы использовать это:

if($(e.target).is('a.price')) { .... } 

Update: Может быть, я неправильно понял ваш вопрос. Если вы собираетесь добавить этот второй тест в тот же самый тест if, тогда используйте мой код. Если вы хотите добавить else if, используйте метод .hasClass, как объясняют другие ответы.

2

Чтобы узнать, имеет ли элемент класс .price, используйте метод $.hasClass().

$(this).hasClass("price"); 
+0

Здесь нет префикса точек. –

+0

Ты прав, Джоэл. Я думал о селекторах. Обновлено :) – Sampson

-2

вы можете попробовать:

$(this).attr("class"); 

, но это вернет вам имена всех классов, применяемых к элементу.

+0

Поскольку jQuery имеет метод тестирования класса, это всего лишь неправильный ответ, хотя он возвращает классы. –

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