2016-07-06 2 views
-1

이 코드를 사용하여 div .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를 생성한다. (Produto 당신이 볼 수 있듯이

<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>들 중 하나가 "활성"라는 추가 클래스가되며, 문제는 내가 그것의 내부 텍스트를 얻을 필요가있다 : 그래서 코드는 다음과 같은 것입니다 1) 다른 코드를 사용하지만, 제대로 동작하지 않습니다 :

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

내가 코드가 작동하지만, 그것은 단지 빈 값이 아닌 <li> 내부의 텍스트를 반환하는지 alert(produto2);을 테스트했다.

+6

'li' 요소 중 하나에'active' 클래스를 넣는 코드에는 아무것도 표시되지 않습니다. 그러면 나중에 찾을 수 없습니다. –

+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

수요일, 당신은 고비를 넘을 것입니다; 피 – dee

관련 문제