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('クラス');
var $myEls = $(myEl).find(myElClass);

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

于 2013-01-07T21:24:50.737 に答える