Javascript 从具有相同类的所有链接获取文本

Javascript 从具有相同类的所有链接获取文本,javascript,jquery,Javascript,Jquery,我有一个过滤器,在这里我可以在单击时切换类活动。单击后,我还想循环遍历那些激活类的链接,并用这些链接的文本创建一个新的数组。但当我循环时,控制台中没有任何东西。 代码如下: $('.filter-button').click(function() { $(this).toggleClass('active'); var activeTags = $('filter-button.active'); $(activeTags).each(function() { var

我有一个过滤器,在这里我可以在单击时切换类活动。单击后,我还想循环遍历那些激活类的链接,并用这些链接的文本创建一个新的数组。但当我循环时,控制台中没有任何东西。 代码如下:

$('.filter-button').click(function() {

  $(this).toggleClass('active');

  var activeTags = $('filter-button.active');

  $(activeTags).each(function() {
    var tags[] = $(this.text());
  });

  console.log(tags);
});

我做错了什么?

您正在为每个元素创建一个新的
标记
变量,该变量位于
each()
函数的本地。当函数退出时,它将被丢弃

您的外部
console.log()
正在尝试列出不存在的值(因为我们不再在
each()
函数中)

each()之外创建并附加一个数组。

$('.filter按钮')。单击(函数(){
$(this.toggleClass('active');
var-activeTags=$('.filter-button.active');
var标签=[];
$(activeTags)。每个(函数(){
tags.push($(this.text());
});
控制台日志(标签);
});
.active{
背景色:红色;
}

1.
2.
3.
4.

5
var-activeTags=$('.filter-button.active');如果filter button为class,则缺少一个点。您忘记了选择器上的点:
filter button.active
。另外,activeTags已经是一个jquery对象,所以你不需要做
$(activeTags)
,你只需要做
activeTags。每个
,最后,你要重置每个中的标签变量,它是该循环的本地变量,所以当你尝试在那里登录时,它将不存在,首先请你
console.log(activeTags)
然后告诉我们你有什么。和第二个
$(activeTags).each(function(){var tags[]=$(this.text());})这部分都错了,应该是这样:
var tags=[]$(activeTags).each(函数(索引,值){tags[index]=$(this.text();})非常感谢您的帮助!