Jquery当存在多个类时选择一个类

时间:2013-02-12 04:36:30

标签: jquery css-selectors

我在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 个答案:

答案 0 :(得分:2)

您可以在jQuery中使用多个选择器:

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

如果您希望两个类都存在以便选择元素,那么您可以执行以下操作:

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

为了清楚起见,我省略了字符串连接。

答案 1 :(得分:1)

你可以只是连接类,也许可以使用上下文

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

或者,如果你想选择一个或另一个类:

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

答案 2 :(得分:0)

试试这个:

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

对于多个选择器,您可以参考http://api.jquery.com/category/selectors/

答案 3 :(得分:0)

您可以尝试使用此字符串替换逗号空格。这将选择具有任何类的所有元素。如果这就是你想要的。:

var classList = path[1].replace(" ",",.");
if $('.content_nav a[class$=".' + classList + '"]').toggleClass('current');