2016-07-06 2 views
-1

私はこのコードを使用して、.lista-produtosに割り当てられたクラスの<ul><li>を作成しています。.text()が値を返さない

$(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>');  
    } 
}); 
}); 

上記のコードは<ul class="filters">の内部<li> Sを生成します。だから、コードは次のようなものです:あなたが見ることができるように、<li> Sの1は「アクティブ」という名前の追加のクラスを持っています

<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> 

、そして問題は、私はそれの内のテキストを取得する必要がある(Produto 1)他のコードで使用するが、それは働いていない:

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

私はコードが働いたかどうかを確認するためにalert(produto2);をテストしたが、それは唯一の<li>の内側ブランク値ではなくテキストを返します。

+6

'li'要素のいずれかに'アクティブ 'クラスを置くコードに何も表示されません。後で見つからないのです。 –

+0

私はあなたのコードをjsfiddleにコピー/ペーストしています。 –

+0

'tipo-'がどこから来るべきか明確ではない: - ? –

答えて

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は存在しないのですか?

+0

はい。それがまさに問題でした。私は今、遅らされていると感じる。どうもありがとうございます! –

+1

それは水曜日です。 P – dee

関連する問題