无法使用 Jquery.contains() 检查 <li> 中的嵌套 <ul>

Not being able to use Jquery.contains() for checking nested <ul> in <li>

主要问题 | $.contains(arg1, arg2)

我无法让 $.contains() 工作。
我想检查 <li> 是否有嵌套的 <ul class="sub-menu">,但无论我将参数放入哪种格式,我总是得到 false 的输出。 (想最终将其包装在 if 语句中以编辑一些 CSS)

下面有更多信息

JS

$( document ).ready(navSecondary());
function navSecondary(){
  var firstListSize = $("nav.header-secondary>ul>li").length;
  for (var i = 0; i < firstLiSize; i++) {
    var nav = $("nav.header-secondary>ul>li:nth-child("+i+1+")");
    var sub = document.documentElement.getElementsByTagName("ul");
    var check = $.contains(sub,nav);
    console.log(check);
  }
}

HTML

<nav class="header-secondary">
    <ul>
        <li><a href="#">item 1</a>
            <ul class="sub-menu">
                <li><a href="#">Sub Option 1</a></li>
                <li><a href="#">Sub Option 2</a></li>
                <li><a href="#">Sub Option 3</a></li>
            </ul>
        </li>
        <li><a href="#">Item 2</a></li>
        <li><a href="#">Item 3</a></li>
    </ul>
</nav>

这里我希望能够使用Js + Jquery有条件地编辑css(Codepen有基本的css)

Codepen (Just for reference :)))

一些背景

所以我要在 WordPress 上创建一个主题并想使用 WordPress 的内置菜单管理器,我不想经历让 WordPress 为每个列表项和子菜单创建 类 的麻烦列出等等。
编辑-我意识到有一种更简单的方法来完成 CSS(通过 类 WordPress 将添加到菜单项)但我想尝试通过 Jquery[=21 来完成=]

试试这个:

$( document ).ready(navSecondary());
function navSecondary(){
  var list = $("nav.header-secondary>ul>li");
  for (var i = 0; i < list.length; i++) {
    var check = list[i].children.length > 1;
    console.log(check)
  }
}

一旦你得到带有 $("nav.header-secondary>ul>li") 的列表,你就可以使用它来迭代并检查它的内容:)


如果你特别想找到ul标签

$( document ).ready(navSecondary());
function navSecondary(){
  var list = $("nav.header-secondary>ul>li");
  for (var i = 0; i < list.length; i++) {
    var check = [...list[i].children].some(c => c.tagName == "UL")
    console.log(check)
  }
}