2014-07-27 4 views
2

<li> 값의 쉼표를 마침표로 바꿔야합니다.쉼표를 마침표로 바꿉니다.

내 코드에 어떤 문제가 있는지 전혀 알지 못합니다. 나는이 코드는 <ul id="stats">의 각 <li>을 대상으로해야

$('#stats li').each(function() { 
    $(this).text().replace(/,/g, '.'); 
}); 

콘솔,하지만 아무것도 ... 확인. 그런 다음 각 <li>,를 교체하고 나는 또한이 시도한 .

로 교체해야합니다

$('#stats li').each(function() { 
     var comma = /,/g; 
     if(comma.test($this)) { 
      $(this).replace(comma, '.'); 
     } 
}); 

그리고이 시도 :

여기
$('#stats li').each(function() { 
    var stats = []; 
    stats.push($(this).text()); 
    stats.replace(/,/g, '.'); 
    console.log(stats); 
}); 

Fiddle입니다.

+1

당신은 ** 설정해야 **은'텍스트 ':이 많은 청소기입니다. 대체 된 결과로 아무것도하지 않습니다 ('replace'는 문자를 제 자리에서 대체하지 않습니다). – Ian

+0

@Ian 나는 이것을 지나치게 생각했을지도 모른다 ... 고마워. 고마워. – Matthew

+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace –

답변

6

문제는 replace 메서드가 새 문자열을 반환한다는 것입니다. 문자열을 수정하지 않습니다. 대신이 시도 :

$('#stats li').each(function() { 
    $(this).text($(this).text().replace(/,/g, '.')); 
}); 

그러나 그 문제에 대한

는, jQuery의 text 방법은 함수를 받아, 너무.

$('#stats li').text(function (index, text) { 
    return text.replace(/,/g, '.'); 
}); 
관련 문제