【问题标题】:jQuery selector as variable. Cannot select proper elementjQuery 选择器作为变量。无法选择正确的元素
【发布时间】:2014-12-22 17:26:37
【问题描述】:

此选择器有效:

$('#nav ul li li').append('<span></span>');

然后,我将#nav 分配给$mainNav 并写了

$mainNav.children("ul").children("li").children("li").append('&lt;span&gt;&lt;/span&gt;');

但这不起作用。 console.log($mainNav) 输出Object[nav#nav]

【问题讨论】:

  • 将其附加到 DOM 以查看 HTML 结果。否则做一个console.log($mainNav.html())

标签: jquery jquery-selectors


【解决方案1】:

$mainNav 需要是一个 jQuery 对象。如果没有,则不能使用 jQuery API。

$mainNav = $($mainNav);

【讨论】:

    【解决方案2】:

    已解决:

    $mainNav.find('ul li li').append('<span></span>');
    

    【讨论】:

      【解决方案3】:

      问题在于,您的“代码”版本是您拥有children("li").children("li"),但LIs 绝不是另一个LI 的直系后代,因此$mainNav.children("ul").children("li").children("li") 永远找不到匹配项。

      您可以添加缺少的级别:

      $mainNav.children("ul").children("li").children("ul").children("li").append('<span></span>');
      

      或使用子&gt; 选择器将其转换为单个选择器:

      $mainNav.find('ul > li > ul > li').append('<span></span>');
      

      你可以按照你解决它的方式来做 ($mainNav.find('ul li li')),但这与:

      $mainNav.find("ul").find("li").find("li").append('<span></span>');
      

      你可以想象它有点慢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        • 2013-07-17
        • 2011-07-06
        • 2017-04-05
        • 1970-01-01
        • 2020-02-05
        • 1970-01-01
        相关资源
        最近更新 更多