Как получить класс элемента clicked?
Я не могу понять, как получить значение class
для элемента clicked.
Когда я использую следующий код, я получаю "node -205" каждый раз.
JQuery
.find('> ul')
.tabs(
{
selectedClass: 'active',
select: function (event, ui) {
//shows only the first element of list
$(this).children('li').attr('class');
},
cookie: { expires: 0 },
fx: fx
})
HTML:
<ul class="tabs">
<li class="node-205"></li>
<li class="node-150"></li>
<li class="node-160"></li>
</ul>
Ответы
Ответ 1
Вот пример быстрого jQuery, который добавляет событие click для каждого тега li, а затем извлекает атрибут класса для элемента с щелчком. Надеюсь, что это поможет.
$("li").click(function() {
var myClass = $(this).attr("class");
alert(myClass);
});
Кроме того, вам не нужно обертывать объект в jQuery:
$("li").click(function() {
var myClass = this.className;
alert(myClass);
});
И в новых браузерах вы можете получить полный список имен классов :
$("li").click(function() {
var myClasses = this.classList;
alert(myClasses.length + " " + myClasses[0]);
});
Вы можете эмулировать classList
в старых браузерах с помощью myClass.split(/\s+/);
Ответ 2
$("li").click(function(){
alert($(this).attr("class"));
});
Ответ 3
Я видел этот вопрос, поэтому я подумал, что могу расширить его еще немного. Это расширение идеи, которую имел @SteveFenton. Вместо привязки события click
к каждому элементу li
было бы более эффективно делегировать события из ul
вниз.
Для jQuery 1.7 и выше
$("ul.tabs").on('click', 'li', function(e) {
alert($(this).attr("class"));
});
Документация: .on()
Для jQuery 1.4.2 - 1.7
$("ul.tabs").delegate('li', 'click', function(e) {
alert($(this).attr("class"));
});
Документация: .delegate()
В качестве последнего средства для jQuery 1.3 - 1.4
$("ul.tabs").children('li').live('click', function(e) {
alert($(this).attr("class"));
});
или
$("ul.tabs > li").live('click', function(e) {
alert($(this).attr("class"));
});
Документация: .live()
Ответ 4
Это должно сделать трюк:
...
select: function(event, ui){
ui.tab.attr('class');
} ,
...
Для получения дополнительной информации о ui.tab см. http://jqueryui.com/demos/tabs/#Events
Ответ 5
$("div").click(function() {
var txtClass = $(this).attr("class");
console.log("Class Name : "+txtClass);
});
Ответ 6
Все предоставленные решения заставляют вас заранее знать элемент, на который вы нажмете. Если вы хотите получить класс из любого элемента, по которому вы щелкнули, вы можете использовать:
$(document).on('click', function(e) {
clicked_id = e.target.id;
clicked_class = $('#' + e.target.id).attr('class');
// do stuff with ids and classes
})
Ответ 7
. $ ( '._ VBZ') нажмите();
Лучший способ сделать это введите имя класса элемента