2016-06-29 2 views
-2

이 작업을 반복하려하지만 결과를 얻지 못했습니다. 기본적으로 :google 데이터가 바뀝니다. 그러나 :wow은 수행되지 않으며 :hi도이 작업을 수행하지 못하게하는 잘못된 작업을 수행합니다. .이 스크립트가 반복되지 않는가?

var newdata = data.text[i].replace(/:wow/g,"<img src=\"wow.gif\"></img>"); 
newdata = data.text[i].replace(/:hi/g,"<img src=\"hi.gif\"></img>"); 
newdata = data.text[i].replace(/:google/g,"<img src=\"google.gif\"></img>"); 

$('#chat-area').append($("<p>"+ newdata +"</p>")); 

가 : 구글은 당신이, 당신은 단지 newdata을 덮어 쓰는 무엇을하고 있는지에 유일한 작업 .replace에게

+1

모두 작동하지만 마지막으로 ': google'만 저장하고 있습니다. 끊임없이'newdata'의 값을 완전히 대체하고 있습니다. –

+0

@SpencerWieczorek thankyou, 그럼 내가 어떻게 그들을 모두 저장하므로 단어 대신 이미지가 모두 표시됩니까? – Johnny

+3

2 행째와 3 행에서'data.text [i]'를'newdata'로 대체하십시오. –

답변

1

매번 newdata의 값을 덮어 쓰고 있기 때문에 마지막으로 replace() 값만 표시되기 때문입니다. data.text[i] 인 원본 데이터를 대체합니다. 대신 각각의 새 수정 된 변수 newdata을 사용해야합니다.

var newdata = data.text[i].replace(/:wow/g,"<img src=\"wow.gif\"></img>"); 
newdata = newdata.replace(/:hi/g,"<img src=\"hi.gif\"></img>"); 
newdata = newdata.replace(/:google/g,"<img src=\"google.gif\"></img>"); 
+0

이 답변에 문제가 있습니까? 의견에 언급하면 ​​수정 해 드리겠습니다. –

0

봐이며, 마지막 하나는 증거를 볼 수있는 유일한 사람입니다. 이것은 왜 재사용 변수가 왜 빈약 한가하는 것이고, 그것은 무엇이 일어날 것인가에 대해 항상 명확하지는 않은 상태 기계를 만들거나 일어날 의도가있는 것이 일어나지 않는 이유입니다.

.replace 세 가지 모두를 원본 데이터에 단계적으로 적용하려는 경우 여기에 필요한 조치가 있습니다.

var wow = data.text[i].replace(/:wow/g,"<img src=\"wow.gif\"></img>"); 
var hi = wow.replace(/:hi/g,"<img src=\"hi.gif\"></img>"); 
var google = hi.replace(/:google/g,"<img src=\"google.gif\"></img>"); 

$('#chat-area').append($("<p>"+ google +"</p>")); 

브라우저에서 단계 디버거 동맹이며 다음 다음과 같은 것을해야 개별적으로 .replace을 적용하려는 경우 실제로

을 무슨 일이 벌어지고 있는지를 보여준 것입니다.

var wow = data.text[i].replace(/:wow/g,"<img src=\"wow.gif\"></img>"); 
var hi = data.text[i].replace(/:hi/g,"<img src=\"hi.gif\"></img>"); 
var google = data.text[i].replace(/:google/g,"<img src=\"google.gif\"></img>"); 

개별 변수 참조와 관련하여 필요한 모든 작업을 수행하십시오.

관련 문제