我正在使用此代码创建附加到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>
内的文本。
答案 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在您要求它的价值时不存在?