.text()没有返回值

时间:2016-07-06 06:26:08

标签: javascript jquery

我正在使用此代码创建附加到div <ul><li>的类的.lista-produtos

$(document).ready(function(){   

var alts = {};
$('.lista-produtos').each(function(){
  var classes2 = $(this).attr('class').split(' ');
  for (var i = 0; i < classes2.length; i++) {
      var matches2 = /^tipo\-(.+)/.exec(classes2[i]);
      if (matches2 != null) {
        var produto = matches2[1];
      }
    }
  if(!alts[classes2]){
      alts[classes2] = true;
      $('ul.filters').append('<li class="filter-produto">'+ produto +'</li>');    
  }  
});
});

上面的代码会在<li>内生成<ul class="filters">个。所以代码是这样的:

<ul class="filters">
<li class="filter-produto active">Produto 1<li>
<li class="filter-produto">Produto 2<li>
<li class="filter-produto">Produto 3<li>
<li class="filter-produto">Produto 4<li>
</ul>

正如你所看到的,其中一个<li>将有一个名为“active”的附加类,问题是我需要将其中的文本(Produto 1)用于另一个代码但是它不起作用:

var produto2 = $('li.filter-produto.active').text();

我测试alert(produto2);以查看代码是否有效,但它只返回空白值,而不是<li>内的文本。

1 个答案:

答案 0 :(得分:3)

可悲的是,我没有代表发表评论,但你能告诉我们发生的事情的顺序吗?

也许你要求它附加到li的活动类之前的值。像这样:

// Function to create the ul and lis

var produto2 = $('li.filter-produto.active').text();

// Function that adds the active class

所以也许li.filter-produto.active在您要求它的价值时不存在?

相关问题