【问题标题】:How do I extract only the first element from a jQuery object?如何仅从 jQuery 对象中提取第一个元素?
【发布时间】:2014-10-12 03:41:48
【问题描述】:

我有一个带有两个子菜单的菜单,当用户单击相应的菜单标题时,它们会通过滑动打开动画。该功能由以下代码提供:

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

        return false;
    });

现在,我想在用户单击我设置的跨度时打开第一个子菜单(它有一个 idopen_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);

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

【问题讨论】:

  • 你也可以添加你的 html 模型吗?也可以尝试用.eq(0) 代替.first()。在我们看到您的 HTML 之前,不确定它是否会起作用。
  • 要回答这个问题,我们需要查看您的相关 (MCVE) HTML。

标签: jquery object


【解决方案1】:

你应该先选择 ul 然后找到 sublist

function openArtists () {

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

        return false;

}

【讨论】:

  • 非常好,先生。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-03-13
  • 2016-03-20
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多