2012-06-10 8 views
0

나는 곤경에 처해있다. 나는 자바 스크립트에서 두 변수를 비교하고 일치하는 경우 상위 요소에 클래스를 할당하려고했습니다. 그러나 나는 이것에 성공하지 못하고있다. 가능한 모든 코드를 검색하여 시도했지만 작동시키지 못했습니다. 내가 지금까지 작성한 코드는 다음과 같습니다 : 내가 다른 기능을 사용하여 시도하고 작동으로 자바 스크립트 변수 비교

$('div#encased a').click(function(){ 
     $('ul#filter .current').removeClass('current'); 
     var class_name = ($(this).parent().attr('class').replace('-',' ')); 
     var className = class_name.toString(); 
     alert(className); 
     $('ul#filter li').each(function(){ 
      /*1st version 
      var filterValue = $(this).text().toLowerCase(); 
      var filterValstr = filterValue.toString(); 
      alert(filterValstr); 
      if(filterValstr==className) 
      { 
       alert("match!") 
       $(this).parent().addClass('current'); 
      }*/ 

      /*2nd version*/ 
      if($(this).text().toLowerCase() == class_name) 
      { 
       $(this).parent().addClass('current'); 
      } 
      /*this works which according to me means it is not entering the if clause 
      else{ 
       $(this).parent().fadeOut('slow').addClass('hidden');  
      }*/ 
     }); 
    }); 

내 지식에 따라, 값이있는 모든 경우 명령 내부 않을 것입니다. 나는 내가하고있는 바보 같은 실수를 확신한다. 나는 여기에서 2 가지 방법을 시도했으며, 하나에 대해 논평했지만 그들 중 어느 것이 맞아야 하는지를 알기 위해 여기 두 가지를 제시했다.

기본적으로 내 div # encased 요소의 이미지를 클릭하면 이미지의 클래스 이름이 찍히고 위의 필터 메뉴에있는 텍스트와 비교됩니다. 일치하는 필터 텍스트는 현재의 클래스에 할당되어야합니다. 당신이 내가 설명하려고 노력하고 있기를 바랍니다. 도와주세요. 감사

+1

'경고 (클래스 명)'와 '경고 (filterValstr) 출력'? – gdoron

+0

class_name 대신 className과 비교하면 안됩니까? –

+0

@ UmairP. 'str.toString() == str'?! – gdoron

답변

1

귀하의 코드가 명확하지 않고, 스파게티 하나의 종류,하지만 어쩌면 문제는 공백 함께, 그들에게

var filterValue = $.trim($(this).text().toLowerCase()); 

트림 시도 그리고 당신은 string.toString() 문자열을 반환 것을 알아야한다 ...
예 :

var str = "bla bla bla"; 
alert(str.toString === str); // true! 
+0

그 방법은 다음과 같습니다. trim + lowerCase –

+0

@ gion_13. 나는 빛나는'.toString()'없이 희망을 품는다. .. :) – gdoron

+0

굉장한 사람.. 트림은 일했다. .. @ gdoron와 누구나에 던져 넣었던 모두에게 감사해라. – Gauts