1

私はjqueryスクリプトに次のものを持っています:

if ( path[1] ) {
    $('.content_nav a[class$="' + pos1_path + '"]').toggleClass('current');
}

次のような適切な要素を選択します。

<a class='pos1_path' href="#">link</a>

それは機能しますが、次のように複数のクラスが使用されている場合に同じことが機能する必要があります。

<a class='pos1_path pos2path' href="#">link</a>

どうすればこれを達成できますか?

解決済み:

$('.content_nav a[class$="' + pos1_path + ' ' + pos2_path + '"]').toggleClass('current');
4

4 に答える 4

2

jQueryでは複数のセレクターを使用できます。

$('.content_nav a.pos1_path, .content_nav a.pos2_path').toggleClass('current');

要素を選択するために両方のクラスが存在するようにしたい場合は、次のようにすることができます。

$('.content_nav a.pos1_path.pos2_path').toggleClass('current');

わかりやすくするために、文字列の連結は省略しました。

于 2013-02-12T04:40:03.877 に答える
1

クラスを連結して、おそらくコンテキストを使用できます

var $context = $('.content_nav');
$('.pos1_path.pos2path', $context);

または、代わりに、1 つのクラスまたは別のクラスを選択する場合:

var $context = $('.content_nav');
$('.pos1_path, .pos2path', $context);
于 2013-02-12T04:44:38.080 に答える
0

これを試して:

if ( path[1] ) {
    if($('.content_nav a').hasClass(pos1_path))
          $('.content_nav a').toggleClass('current');
}

複数のセレクターについては、 http://api.jquery.com/category/selectors/を参照できます。

于 2013-02-12T04:41:06.417 に答える
0

You can try this which will take your string replace the spaces for commas. That will select all elements that have any of the classes. IF that is what you want.:

var classList = path[1].replace(" ",",.");
if $('.content_nav a[class$=".' + classList + '"]').toggleClass('current');
于 2013-02-12T04:42:44.107 に答える