如何仅从jQuery对象中提取第一个元素?

时间:2014-10-11 19:02:54

标签: jquery object

我有一个带有两个子菜单的菜单,当用户点击相应的菜单标题时,通过滑动来设置动画。该函数由以下代码提供:

$('ul#main_menu > li:has( ul.sub-menu )').click(function()
    {
        var $sublist = jQuery(this).find('ul:first');
        $sublist.slideToggle('fast');

        return false;
    });

现在,我想在用户点击我设置的范围(id open_artists时打开第一个子菜单。我一直在尝试修改以上代码来实现这一点。这样可行,但打开了两个子菜单。我只想打开第一个子菜单。

function openArtists () {

        var $sublist = jQuery('ul#main_menu > li:has( ul.sub-menu )').find('ul:first');
        $sublist.slideToggle('fast');

        return false;

}

$('#open_artists').click(openArtists);

我试图将其修改为:

function openArtists () {

        var $sublist = jQuery('ul#main_menu > li:has( ul.sub-menu )').find('ul:first');
        var $firstsublist = jQuery('$sublist').first();
        $firstsublist.slideToggle('fast');

        return false;

}

$('#open_artists').click(openArtists);

但这不起作用。我也没有尝试过其他任何事情。

1 个答案:

答案 0 :(得分:2)

您应首先选择 ul ,然后找到子列表

function openArtists () {

        var $sublist = jQuery('ul#main_menu > li:has(ul.sub-menu)').find('ul').eq(0);
        $sublist.slideToggle('fast');

        return false;

}