jQuery:忽略 <li> 元素内的类

标签 jquery

我有以下 html 列表:

<ul>
<li class="list-group-item ReplyPill">This is my first value<span class="badge badge-pill"><div id="close">X</div></span></li>
<li class="list-group-item ReplyPill">This is my second value<span class="badge badge-pill"><div id="close">X</div></span></li>
(...)
</ul>

我正在使用这个 jQuery 来获取所有“li”元素:

let replyOptions = [];
        $('.ReplyPill').each(function () {
            replyOptions.push($(this).text());
        });

问题是“div”中的“X”也被读取,我的输出如下所示:“这是我的第一个 valueX”

我已经尝试过“.not('#close')”来排除 div,但它没有改变任何东西。

那么有没有办法在循环中忽略 id 为“close”的“div”?

最佳答案

ID 必须是唯一的 - 您需要一个类

此外,DIV 不是跨度的有效子元素

无论如何

let replyOptions = $('.ReplyPill').map(function() {
  return $(this).contents().get(0).nodeValue; 
}).get();

console.log(replyOptions);


// PS how to delegate the click on the X

$("#list").on("click",".close",function() {
  $(this).closest("li").hide(); 
})
li {
  width: 200px;
  background-color: yellow;
}

.badge {
  display: inline-block;
  float: right;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="list">
  <li class="list-group-item ReplyPill">This is my first value<span class="badge badge-pill close">X</span></li>
  <li class="list-group-item ReplyPill">This is my second value<span class="badge badge-pill close">X</span></li>
</ul>

关于jQuery:忽略 <li> 元素内的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65070077/

相关文章:

jquery - 触发链接到 document.body.scrollTop 上的 KnockoutObservable 的 Knockout BindingHandler

javascript - 当我从下拉列表中选择选项时,按钮应该会自动触发并生成唯一的 ID

php - json编码二维数组

javascript - 如何获得与 CSS 媒体查询检查相同的宽度

javascript - 如何从动态生成的 html 中捕获属性 id?

javascript - 如何在mvc3中嵌入youtube视频?

javascript - 如何使用 fancybox 2 创建响应式弹出窗口?

jquery - Bootstrap 下拉按钮不起作用

javascript - 鼠标悬停在图像上时的快速预览功能

jquery - 将类添加到仅包含子元素的元素