如果ID存在,请找到锚标记并添加类

时间:2012-08-24 10:55:57

标签: jquery css

我的网站上有一个Vimeo iframe数组,在刷新时,会从数组中随机调用。这些iframe中的每一个都有唯一的ID。

我所追求的是取决于显示哪个iframe,它会识别ID并在菜单项中添加一个类。

到目前为止,我有这个:

$("#yuan-photofilm").find(".menu-nav li ul li a").addClass('active-vimeo');

我的想法是,如果#yuan-photofilm存在,它会找到.menu-nav li ul li a并添加类.active-vimeo - 但它似乎不起作用。

有什么想法吗?

谢谢, [R

以下是一些HTML

<div class="grid_7 suffix_5">
        <div class="video-container">
            <iframe id="jack-photofilm" src="http://player.vimeo.com/video/46822673?title=0&amp;portrait=0&amp;byline=0&amp;color=ffffff" width="650" height="366" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>   </div>
</div>
<div class="clear"></div>
    <div class="grid_7">
        <ul class="menu-nav">
            <li class="current-menu-nav-item"><a href="index.php">Photofilms</a>
                <ul>
                    <li><a href="#yuan" id="yuan">Yuan Shuai</a></li>
                    <li><a href="#nina" id="nina">Nina</a></li>
                    <li><a href="#zhuoer" id="zhuoer">Zhuoer</a></li>
                    <li><a href="#qingqing" id="qingqing">Uncle Douglas and Qingqing</a></li>
                    <li><a href="#jack" id="jack">Jack</a></li>
                </ul>   
            </li>
            <li><a href="still.php">Photographs</a></li>
            <li class="sub-info-menu"><a href="information.php">Information</a></li>
            <li><a href="http://blog.youziproject.com">Blog</a></li>
        </ul>
    </div>

2 个答案:

答案 0 :(得分:1)

每个元素似乎都有一个ID,为什么不只是针对那个?

if ($("#yuan-photofilm").length) {
   $("#yuan").addClass('active-vimeo');
}

或更具活力:

$('.menu-nav li ul li a').each(function(i,e) {
    if ($('#'+e.id+'-photofilm').length) $(e).addClass('active-vimeo');
});

答案 1 :(得分:0)

我认为每个人都忽略了jQuery选择器的重点。只需使用:

$("#yuan-photofilm .menu-nav li ul li a").addClass('active-vimeo');

如果#yuan-photofilm不存在,则选择器将失败,并且不会添加该类。这可以在http://jsfiddle.net/LtwW5/

中看到

<强> EDITED

看过您的HTML后,您可以将其更改为以下任一项:

$("#yuan-photofilm").addClass('active-vimeo');
$(".menu-nav li ul li a#yuan-photofilm").addClass('active-vimeo');

取决于您希望对结构的严格程度(例如,如果#yuan-photofilm出现在其他地方,则使用第二个,它不应该因为它是一个id,但生成的代码并不总是如此)