我搜索一个简单/干净的方法来获得与所选元素相同的类的每个元素。
类似的东西(不工作)
var myElement = $("#elementId");
var listSameClass = $.hasClass(myElement.attr("class"));
答案 0 :(得分: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, '.'));
答案 1 :(得分:2)
我建议,如果我理解得当:
var currentClass = this.className,
allWithClass = $('.' + className);
然而,这确实假设存在单个类。
对于具有多个类的元素:
var classes = this.className.split(/\s+/).join('.'),
allWithClass = $('.' + classes);
不知怎的,我没有意识到你首先通过id
选择了一个元素,在那种情况下我会建议你使用Matt的答案,因为任何修正都会使我的答案变成重复。糟糕。
答案 2 :(得分:0)
var myElClass = $(this).attr('class');
var $ myEls = $(myEl).find(myElClass);