2

我搜索了一种简单/干净的方法来获取与所选元素具有相同类的每个元素。

类似的东西(不工作)

var myElement = $("#elementId");

var listSameClass = $.hasClass(myElement.attr("class"));
4

3 回答 3

4

是的,这很简单:

var myElement = $("#elementId");
var classes = myElement.prop('class').split(/\s+/);
var classSelector = '.' + classes.join('.');
var otherElements = $(classSelector);

演示:http: //jsfiddle.net/mattball/58uQh


不够小?让我们把它变成一个不可读的单行!

var myElement = $("#elementId");
var otherElements = $('.' + myElement.prop('class').replace(/\s+/g, '.'));

http://jsfiddle.net/mattball/PQ5fX/

于 2013-01-07T21:18:08.943 回答
2

如果我理解正确,我建议:

var currentClass = this.className,
    allWithClass = $('.' + className);

但是,这确实假设存在一个类。

对于具有多个类的元素:

var classes = this.className.split(/\s+/).join('.'),
    allWithClass = $('.' + classes);

不知何故,我没有意识到您首先选择了一个元素id,在这种情况下,我建议您使用马特的答案,因为任何更正都会将我的答案变成重复。哎呀。

于 2013-01-07T21:18:00.930 回答
0

var myElClass = $(this).attr('class');
var $myEls = $(myEl).find(myElClass);

http://api.jquery.com/find/

于 2013-01-07T21:24:50.737 回答