jquery元素具有两个类的另一个元素的相同类

时间:2012-10-23 15:36:45

标签: jquery

您好我的网站上有这样的菜单:

<div class="menu">
    <p align="left" id="home" class="titolo_menu">home</p>
    <p align="left" id="azienda" class="titolo_menu azienda"><br>azienda</p>
    <p align="left" id="staff" class="titolo_sotto_menu azienda">staff</p>
    <p align="left" id="risorseumane" class="titolo_sotto_menu azienda">risorse umane</p>
    <p align="left" id="servizi" class="titolo_menu servizi"><br>servizi</p>
    <p align="left" id="servizioclienti" class="titolo_sotto_menu servizi">servizio clienti</p>
    <p align="left" id="prodotti" class="titolo_menu prodotti"><br>prodotti</p>
    <p align="left" id="web" class="titolo_sotto_menu prodotti">web</p>
</div>

如果有一个旧页面的类,我想检查点击元素的时间。 我将旧页面的id存储在我的php会话中,然后在javascript中检索。 示例我的旧页面ID是:“azienda”(是我的菜单的p)。 我在我的菜单中搜索了具有id“azienda”的元素,并且我想要与我现在点击的元素进行比较,例如工作人员。 如果我的带有“工作人员”的p包含课程的一部分,在这种情况下是“azienda”,并且点击了旧p,我想要同意。在这种情况下匹配。 问题是我有两个类进入我的p,如果只有一个不是问题,但有两个我想只对第二个类进行编译。

 $('.titolo_sotto_menu').click(function(){
        var id=$(this).attr('id');//staff
        var class=$(this).attr('class');
        var page=id;

        old_page=actual_page;//azienda
        actual_page=page;

        var class_old = $('#'+old_page).attr('class');

        if (class == class_old){
            //do something
        }   
});

3 个答案:

答案 0 :(得分:2)

您可以使用jQuery的函数element.hasClass('classname')。

var classes[] = class.split(' ');
for(var i=0; i<classes.length; i++){
if ($('#'+old_page).hasClass(classes[i])){
            //do something
        }
}

答案 1 :(得分:1)

如果您确定只需要检查第二个类,那么只需从元素中提取第二个类。

var secondClass = $('#idOfElement').attr('class').split(' ')[1]

此外,您可能需要添加一项检查以查看是否有两个类:

var secondClass = $('#idOfElement').attr('class').split(' ').length > 1 
? $('#idOfElement').attr('class').split(' ')[1] 
: $('#idOfElement').attr('class');

答案 2 :(得分:-1)

$.data()可能会有所帮助。让我知道:))