Вход

Просмотр полной версии : Как узнать есть ли у данного блока класс


Vladislav
19.09.2014, 21:49
Здравствуйте, мне нужно узнать есть ли у блока, по которому совершаю *клик*, класс (class='house'). И если есть, то убрать у него этот класс.

Я понимаю, что это нужно сделать с помощью if.
Помогите пожалуйста.

d.skuratovich
19.09.2014, 22:06
Эмм, уточни: jQuery или Native JS (чистый)?

tsigel
19.09.2014, 22:07
function hasClass(element, className) {
var classList = element.className.split(" ");
return classList.some(function (name) {
return name === className;
});
}

Vladislav
19.09.2014, 22:14
все-равно, думаю, jQuery будет даже лучше.

d.skuratovich
19.09.2014, 22:20
Vladislav, я думаю, что как-то так


( function ( $ ) {
$( document ).on( 'click', '.div', function() {
if ( $( this ).hasClass( 'house' ) ) {
$( this ).removeClass( 'house' );
}
} );
} ( jQuery ) );

Vladislav
19.09.2014, 22:39
да, все работает. Спасибо!

d.skuratovich
19.09.2014, 22:40
Vladislav, пожалуйста)

Vladislav
19.09.2014, 22:43
не подскажешь где учился js, ибо я полный ноль. нужно с чего-то начать.

d.skuratovich
19.09.2014, 23:01
Vladislav, а чего ему учится то ;)

Safort
19.09.2014, 23:39
Да вы офигели такую ерунду на жиквери писать!)


document.addEventListener('click', function(e) {
var el = e.target;
if (el.classList.contains('house'))
el.classList.remove('house');
});

Safort
19.09.2014, 23:41
Vladislav,
очешуительный учебник http://learn.javascript.ru/ я гарантирую это.


d.skuratovich,
Vladislav, а чего ему учится то
Так бы и сказал, что не знаешь.

d.skuratovich
20.09.2014, 00:42
Safort, я не спорю, но у тебя не кросс, classList на сколько я знаю фича HTML5, ну именно add(), contains()

Safort
20.09.2014, 00:49
d.skuratovich,
да, ты прав. Но можно юзать поллифилы)

d.skuratovich
20.09.2014, 00:54
Safort, можно, но есть ли смысл? Проще тогда уже подключить тот же jQuery и пользоваться его возможностями, нежели использовать разные фичи по частям

Safort
20.09.2014, 02:08
d.skuratovich,
если полифилл не такой толстый как jQuery и нужна только эта фича, то почему бы и нет? Но если используется много полезностей из jQuery, то смысла в полифилле, конечно, нет.