选择父链接

时间:2013-06-04 15:32:35

标签: jquery

将点击事件附加到html以点击链接后,我将点击的链接放在变量中,以便以后能够为其分配css规则:

$("html").on('click', '.someclass a', function(event) {

var clickedlink = $(this);

// a long chain of conditionals and functions

$(clickedlink).css("color", "red"):

}

如果点击的链接位于子菜单(ul ul a)中,我希望能够选择父链接(ul a),这样我就可以将相同的css规则分配给父链接。

我试过

var clickedlinkparent = $(this).parent();

$(clickedlinkparent).css("color", "red");

但这没有任何结果,所以我做错了什么。这样做的正确方法是什么?

更新:这里是菜单的结构,你可以看到,最基本的一个:

<div class="menu-container">
    <ul id="menu" class="nav-menu">
       <li>
          <a href="http://www.someurl.com/">HOME</a>
        </li>
        <li>
            <a>ABOUT</a>
                <ul class="sub-menu">
                    <li><a href="http://www.someotherurl.com/">Our Company</a></li>
                    <li><a href="http://www.yetsomeotherurl.com/">News</a></li>
                    <li><a href="http://www.someevenlongerurl.com/">Events</a></li>
                </ul>
          </li>
     </ul>
</div>

所以,我想要的是,当点击我们的公司链接时,我们公司和ABOUT都会分配相同的CSS。

2 个答案:

答案 0 :(得分:0)

我认为你需要:

http://jsfiddle.net/fXxev/4

$(document).on('click', '.sub-menu a', function (event) {
    event.preventDefault();
    var $clickedlink = $(this);

    // a long chain of conditionals and functions

    $clickedlink.add($clickedlink.parents('li').find('> a')).css("color", "red");

});

答案 1 :(得分:0)

注意:在clickedLink中保存元素后,您无需再次将其放入jquery finder中。

clickedlink.css("color", "red");

clickedlinkparent.css("color", "red");

同样有用,如果您不确定是否选择了正确的元素,则可以始终使用console.log()。

console.log(clickedLink);