2012-07-09 2 views
1

를 기반으로 텍스트를 교체하고 찾기/검색을 수행하기위한 몇 가지 유용한 게시물을 발견/'jQuery를 찾아 내가 뒤져 한 키 값 쌍 개체

, 키 값 쌍 배열/객체를 사용하여 JQuery와에 대체하지만 난 할 수 t 여기

사이트의 테스트 URL, 그것은 일하러 : 당신이 볼 수있는

http://www.larryadowns.com.php5-1.dfw1-2.websitetestlink.com/

, 그것은 포스트 정보와 블로그 피드입니다. 나는 날짜 달을 표적으로하고, 검색을하고, 각각을 스페인 월에 넣기 위해 바꾸려고 노력하고있다.

여기 ...이 모든 jQuery를 (문서) .ready()에 싸여있어, 자바 스크립트의

var monthMap = { 
     "January" : "Enero", 
     "February" : "Febrero", 
     "March" : "Marzo", 
     "April" : "Abril", 
     "May" : "Mayo", 
     "June" : "Junio", 
     "July" : "Julio", 
     "August" : "Agosto", 
     "September" : "Septiembre", 
     "October" : "Octubre", 
     "November" : "Noviembre", 
     "December" : "Diciembre" 
    }; 

    // sift thru the post-info, replacing only the month with the spanish one. 
    $(".post-info .date").text(function(index, originalText) { 

     var moddedText = ''; 

     for (var month in monthMap) { 

      if (!monthMap.hasOwnProperty(month)) { 
       continue; 
      } 

      moddedText = originalText.replace(month, monthMap[month]); 

//   moddedText = originalText.replace(new RegExp(month, "g") , monthMap[month]); 

      console.log("month : " + month); 
      console.log("monthMap[month] : " + monthMap[month]); 
     } 

     console.log('-------------------'); 
     console.log('index : ' + index); 
     console.log("monthMap : " + monthMap); 
     console.log("originalText : " + originalText); 

     console.log("moddedText : " + moddedText); 

     return moddedText; 
    }); 

하지만 슬프게도의 .replace 또는 정규식과 .replace도 정말 아무것도 대체하고있다. 어디서 잘못 됐습니까? 다시 스택합니다.

답변

2

아주 확실한 이유가 있지만, 당신의 코드는 다음 달을 달렸다로에 moddedText 원래의 반환 된 것 같습니다하지 않습니다. 이 때문에 12 월을 바꿀 때만 바뀌 었습니다.

나는 약간 다른 방법을 사용했습니다 그러나 당신이 찾고있는 무엇을 생산해야한다.

$(".post-info .date").text(function(index, originalText) { 

    for (var month in monthMap) 
    { 
     if (originalText.indexOf(month) > -1) 
     { 
      return originalText.replace(month, monthMap[month]); 
     } 
    } 

    return originalText; 
}); 

전체 코드 및 데모는 jsFiddle을 확인하십시오.

+0

우수. 고란 ​​고마워. 해결되었습니다. 그 이유를 아는 것이 좋을 것입니다. 누군가가 그 대답을 가지고 있다면 . 하지만 걱정할 필요가 없습니다. – joelrnorris

+0

문제 없습니다, 다행 내가 도울 수 없었다. 사실, 이제 커피를 마 셨는데 꽤 분명해 보입니다. 이 (심지어 성공적인 경기 후) 모든 개월을 반복 되었기 때문에,'originalText'는 이전에 성공적으로 교체'moddedText'을 덮어했다. 따라서 다음 달이 없어서 왜 12 월 만 일 했는가. –

+0

화려한! 그건 의미가 있습니다. 눈의 두 번째 세트를이긴 것은 ... – joelrnorris