javascript - 循环 .find() 结果并收集 .text()

标签 javascript jquery

我有以下代码:

jQuery

$("li").click(function(){
  $(this).toggleClass("selected");
  $(".selected").each(function(){
    $(".items").append(this.text() + ", ");
  });
});

html

<ul class='category'>
  <h4>Category</h4>
  <a href="#"><li class="selected">Link 1</li></a>
  <a href="#"><li>Link 2</li></a>
  <a href="#"><li>Link 3</li></a>
  <a href="#"><li class="selected">Link 4</li></a>
  <a href="#"><li class="selected">Link 5</li></a>
  <a href="#"><li>Link 6</li></a>
  <a href="#"><li>Link 7</li></a>
</ul>

<span class="items">Selected Items Appear Here</span>

我正在尝试在 $(".category") 的内容中搜索具有 .selected 类的标签,然后将结果附加到另一个 div。

这是我希望的结果:

<span class="items">Link 1, Link 4, Link 5</span>

但是,this.text() 似乎返回了未定义的错误。
关于我做错了什么有任何线索吗?

最佳答案

您需要在 jQuery 对象上调用 .text(),并且由于 this 引用该元素(请参阅 jQuery docs for .each() ),只需将 this 包装起来$() 中创建循环中当前元素的新 jQuery 对象。

示例:

$(".items").append($(this).text() + ", ");

说到这里,您可能最好只使用 .innerHTML ,除非您出于其他原因需要 jQuery 对象。

示例:

$(".items").append(this.innerHTML + ", ");

关于javascript - 循环 .find() 结果并收集 .text(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27210813/

相关文章:

javascript - 嵌套的 ng-repeat for object within an object within an object

javascript - 在输入标签上使用 keyup 事件的 JS 搜索

javascript - 任何让我的 javascript + html 代码更小的建议

javascript - 使用 JavaScript 通过 SVG-Lines 连接可拖动 LI

javascript - 从 jquery 中的按钮调用模态对话框表单

javascript - 使用 ASP.MVC3 执行注销操作时对 json post 和 get 感到困惑

javascript - RequireJs + Rails 4

jquery - 如何获取距日期选择器中所选日期 15 天以上的日期?

javascript - 来自 ajax 请求的 Extjs 图像/png

javascript - 如何从区域 href 触发 JS 函数