我有一个列表元素(<ul>).我想用jQuery的each()迭代输入元素的叔叔元素的所有<li>个子元素.

以下是我的代码:

let clname = "Hadiselect0";
let ar = ($('.dd-search .' + clname)[0].parentNode.parentNode + '+ ul >li');
ar.each(function () {
   console.log("ok");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>

<div class="list">
   <div class="dd-search">
     <input id="txtSearchValue" autocomplete="off" class="dd-searchbox Hadiselect0" type="text">
   </div>

   <ul>
      <li class="option selected" data-value="0" data-display-text="" tabindex="0">please select</li>
      <li class="option " data-value="6565666" data-display-text="" tabindex="0">4623526615</li>
      <li class="option " data-value="6565666" data-display-text="" tabindex="0">4623526615</li>
   </ul>
</div>

此代码产生以下错误:

Ar.each不是一个函数

我怎么才能让它起作用呢?

推荐答案

使用jQuery .find()方法:

let clname = "Hadiselect0";

let ar = $('.dd-search .' + clname).parent().parent().find('ul > li');
ar.each(function () {
    console.log("ok", $(this).text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="list">
   <div class="dd-search">
      <input id="txtSearchValue" autocomplete="off" class="dd-searchbox Hadiselect0" type="text">
   </div>

   <ul>
      <li class="option selected" data-value="0" data-display-text="" tabindex="0">please select</li>
      <li class="option " data-value="6565666" data-display-text="" tabindex="0">4623526615</li>
      <li class="option " data-value="6565666" data-display-text="" tabindex="0">4623526615</li>
   </ul>
</div>

Javascript相关问答推荐

foreach循环中的Typescript字符串索引

从连接字符串创建客户端时,NodeJS连接到CosmosDB失败

在JavaScript中对大型级联数组进行切片的最有效方法?

React Hooks中useState的同步问题

使用TMS Web Core中的HTML模板中的参数调用过程

从WooCommerce Checkout Country字段重新排序国家,保持国家同步

如何禁用附加图标点击的v—自动完成事件

为什么当我解析一个promise时,输出处于挂起状态?

当Redux提供程序访问Reduxstore 时,可以安全地从Redux提供程序外部调用钩子?

可更改语言的搜索栏

如何通过将实例方法的名称传递给具有正确类型的参数的继承方法来调用实例方法?

使用Google API无法进行Web抓取

在数组中查找重叠对象并仅返回那些重叠对象

回溯替代方式

有效路径同时显示有效路径组件和不存在的路径组件

传递方法VS泛型对象VS事件特定对象

每隔3个项目交替显示,然后每1个项目交替显示

将Singleton实例设置为未定义后的Angular 变量引用持久性行为

material UI自动完成全宽

在执行console.log(new X())时记录一个字符串