2013-08-27 3 views
1

У меня есть DIV с несколькими классами:JQuery получить все классы элемента, за исключением тех, указанных

<div class="box checker"> 

.box устанавливается вручную, но .checker устанавливается динамически. Мне нужно получить класс, который не является .box путем ссылки .box. То, что я пытался дает мне undefined:

$('.box form .submit').click(function() { 
    var box = $(this).closest('.box').attr('class:not(".box")'); 
}); 

Есть ли способ сделать то, что я хочу?

+0

Что именно вы пытаетесь получить? –

+0

Имя класса - это просто строка. Вы можете обработать эту строку, однако вы хотите удалить из нее «поле». – jfriend00

+0

Я пытаюсь получить '.checker' –

ответ

3
$('.box .submit').click(function() { 
    var classes = $(this).closest('.box').prop('class').split(' '); 
    classes.splice(classes.indexOf('box'), 1); 
}); 

Вот скрипка: http://jsfiddle.net/vCpEh/

+0

Ницца, это сделал трюк. –

-1
var box = $(this).closest('.checker'); 
if (box.hasClass("box")) { 
    //do stuff 
} else { 
    //other stuff 
} 
+0

Downvoter, пожалуйста, укажите причину. –

+0

Это не позволяет динамически задавать классы, которые были моей проблемой. –

+1

ОП задал: «Мне нужно получить класс, который не является' .box', ссылаясь на '.box', т.е. он хочет, чтобы другое имя класса находилось в том же элементе, что и '.box'. – Steve

0

Попробуйте это. Это позволит получить все классы, применяемые к элементу, и удалить поле ввода из результирующего массива.

$('.box').click(function() { 
    var classes = $(this).closest('.box').attr('class').split(' '); 
    classes.splice(classes.indexOf('box'), 1);  
});