2012-02-26 3 views
0
$('body, html').replace(".", " "); 

시도했지만이 방법은 작동하지 않습니다. 전체 페이지에서 점을 공백으로 바꾸고 싶습니다.본문 점을 공백으로 바꾸기

+3

이 정말 나쁜 생각처럼 보인다. 아주 작은 페이지가 아니라면 성능은 심각해질 것입니다. 페이지에 대해 어떤 가정을 할 수 있다면 더 구체적이고 느린 것은 할 수 없습니다. –

+2

고려해야 할 한 가지. 텍스트 나 전체 소스에서 바꾸기를 원하십니까? 예를 들어,'style = "width : 2.2em;"'이 바뀌면 페이지가 깨질 수 있습니다. – SimonMayer

답변

0

jQuery에는 .replace() 메서드가 있습니까? 당신은 String.replace()을 jQuery 객체에 사용하려고 시도하는 것 같습니다.

당신은 대신 다음 시도 할 수 :

var $body = $("body"); 
$body.html($body.html().replace(/\./g, " ")); 

을 또는 당신이 그것을 원한다면 더 요소의 선택을 선택, 특정 클래스 가진 사람 만 말 :

$(".aCertainClass").html(function(i, oldVal) { 
    return oldVal.replace(/\./g, " "); 
}); 

참고는 .replace()g 플래그가 설정된 정규식을 사용하므로 첫 번째 일치 항목을 바꾸는 대신 전역 대체를 수행합니다.

본문의 html을 바꾸면 모든 요소를 ​​효과적으로 제거하고 다시 만들어서 이미 바인딩 된 모든 이벤트 처리기를 종료합니다. 따라서 핸들러를 연결하기 전에 을 수행하십시오.

1

시도해보십시오. replaceAll 기능. 당신은 단지 하나가 아닌 모든 요소를 ​​대체하기를 원합니다.

업데이트 : replaceText은 요소에있는 모든 텍스트를 대체하는 데 사용할 수 있습니다.

+0

replaceAll은 텍스트 노드 내의 텍스트가 아닌 요소 노드를 대체합니다. –

+0

@IliaG : 이에 동의하고 그에 따라 내 대답을 업데이트했습니다. – Rachel

0

내가 가지고있는 경우, 점을 텍스트로만 변경하기를 원합니다.

This function at http://jsfiddle.net/KmZ5A/는 당신이 필요로하는 무엇을 수행해야합니다

function searchDOM(element) { 
     var items = []; 
     items.push(element); 
     var item; 
     while (item = items.pop()) { 
      if (typeof item != 'undefined' && item.nodeValue && item.nodeValue != null) { 
       item.nodeValue = item.nodeValue.replace(/\./g,' '); 
      } 
      for (var key in item.childNodes) { 
       var child = item.childNodes[key]; 
        if (typeof child != 'undefined' && 
         (child.nodeType == 1 || child.nodeType == 3)) { 
         items.push(child); 
       } 
      } 
      if (item.nodeName == "IFRAME") { 
       if (!item.src) items.push(item.contentDocument.body); 
      } 
     } 
     return null; 
    } 
    searchDOM(document.body); 
관련 문제