当类属性包含多个类名时,jQuery Find类(class =“classA classB classC”)

时间:2011-10-15 22:17:43

标签: jquery class find

我有一个像[简单菜单]这样的div结构:

<div class="float menuA">
    <div class="float selected"></div>
    <div class="float default"></div>
    <div class="float default"></div>
    <div class="float default"></div>

    <div class="clear"></div>
</div>

当我点击任何类名为“默认”的div时,我想:

  1. 使用.removeClass().addClass()将名为“selected”的类交换为“default”
  2. 将最近点击的div(带有class ==“default”)更新为class ==“selected”
  3. 当类标记包含一个类名时(例如:class =“default”和class =“selected”),当单个类标记中有一个空格分隔的类名列表时,这种方法可以正常工作这么顺利。

    问题: 当单个标签中有多个类名时,如何找到class ==“selected”的元素?

    任何帮助赞赏的人......

2 个答案:

答案 0 :(得分:2)

看起来你正在尝试制作导航菜单。最简单的方法是:

$(function() {
    $('div.menuA div.float').click(function() {
        $(this).siblings('.selected').removeClass('selected').addClass('default');
        $(this).removeClass('default').addClass('selected');
    });
});

但这并不能直接回答你的问题。为了“找到”另一个元素的子元素,请使用find()方法:

// finds all divs with class 'selected' in the div.menuA div
$('div.menuA').find('.selected');

如果您想跳过额外的find()电话,您可以将这些点连接在一起:

// selects divs with the classes 'selected' and 'default'
$('div.menuA div.selected.default'); 

答案 1 :(得分:1)

$('.default').click(function(){
    $('.selected').removeClass('selected').addClass('default');
    $(this).removeClass('default').addClass('.selected');
});