如果另一个具有此元素,如何在元素中放置css标记

时间:2014-02-04 21:12:30

标签: javascript jquery html css

<div id="user_navigation" class="logged_in right">
   <ul class="ipsList_inline">
      <li><a data-clicklaunch="getNotificationsList" id="notify_link" href="http://localhost/joridesign/index.php?app=core&amp;module=usercp&amp;area=notificationlog" title="Notifications" class="ipbmenu menu-active"><i class="fa fa-bell fa-2x"></i></a>
       </li>
       <li><a data-clicklaunch="getInboxList" id="inbox_link" href="http://localhost/joridesign/index.php?app=members&amp;module=messaging" title="Messenger"><i class="fa fa-envelope fa-2x"></i></a>
       </li>                   
    </ul>
 </div>

好的,我有这个结构。 如果li中的ul menu-active中的任何一个#user_navigation .ipsList_inline li {}background: #fff中的任何一个{{1}}将有{{1}}的新类,我想要做的是什么; 我知道jquery有一个原因,但我问的是还有其他方法吗?如果没有,你可以通过jquery向我展示吗?

3 个答案:

答案 0 :(得分:1)

简单的方法是只针对包含该类的任何LI,获取它和兄弟LI,并添加一个类(或者css(),如示例中所示,真的是什么)

$('li:has(.menu-active)').siblings('li').addBack().css('background', '#fff');

FIDDLE

编辑:

仅更改包含类

的那个
$('.menu-active').closest('li').addClass('myClass');

FIDDLE

答案 1 :(得分:1)

检查元素是否存在menu-active,然后将class或css添加到其.closest() li

var elem = $('#user_navigation .ipsList_inline li a.menu-active');
if (elem.length) {
    elem.closest('li').addClass('newClass')
}

DEMO

答案 2 :(得分:0)

尝试

    if ( $( '#user_navigation .ipsList_inline li a' ).hasClass( "menu-active" ) ) {
$('#user_navigation .ipsList_inline li a.menu-active').parent().addClass( "newclass");
}

DEMO