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);

或者,如果您想选择一个班级或另一个班级:

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

你可以试试这个,它将用你的字符串替换逗号的空格。这将选择具有任何类的所有元素。如果那是你想要的。:

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