2009-11-02 3 views
0

그래서이 코드 스 니펫을 가지고 있습니다.jQuery : 더 깨끗한 구문을 찾아서 jQuery로 바꾸시겠습니까? 고급 찾기/바꾸기 기능?

$(document).ready(function() { 
    var replacementDoneIn = $("body").html(); 
    var regExMatch = /premier(({1,5}?)?co(mpany)?([ |\.])?)?/ig; 
    var replaceWith = "Nikon"; 
    var resultSet = replacementDoneIn.replace(regExMatch, replaceWith); 
    $("body").html(resultSet); 
}); 

이는 나를 위해 일하는 것이지만, 더 강력하고 복잡한 시나리오는 다루지 않습니다.

jQuery를 사용하여 찾기/바꾸기 기능을 확장하고 싶습니다. html 요소와 속성 및 값을 제외한 body 요소 내부의 텍스트 찾기/바꾸기를 제대로 활용하는 것.

note : jQuery text() 함수가 적용되는 요소의 하위 요소를 통과하는 방식을 완전히 알 수는 없습니다.

참고 : 내가 $("*")를 통해 HTML의 모든 요소를 ​​반복 할 수 있다는 것을 이해하지만 그러한 스크립트에 대한 모든 문제를 만듭니다.

그러면 올바른 경로로 나를 안내 할 수 있습니다. 대단히 감사하겠습니다. 이미이 문제를 해결하는 리소스에 대한 링크와 조언이 모두 작동합니다. 왠지 내 머리가 복잡한 해결책을 만들어 내기 때문에 더 간단한 접근법이있을 수 있습니다.

미리 감사드립니다.

답변

1

는이 질문에 대한 내 대답을 확인하십시오

  • How to replace text in html document without affecting the markup?
    • 나는 마크 업 또는 자바 스크립트 연결된 이벤트 처리기에 영향을주지 않고, 그 내용을 대체 텍스트 노드를 통과하는 간단한 기능을 기록했다.

    +0

    CMS에 감사드립니다. 내 자신을 잘 표현하지는 않았지만 .text 함수를 사용했기 때문에 내가 찾고 있었던 것에 대한 해답을 얻었을 것입니다. 정말 고맙습니다. – GnrlBzik

    0

    질문을 올바르게 이해하면 text()을 사용하십시오. 요소의 텍스트 노드와 해당 요소의 하위 노드 만 포함합니다. 그렇게하면

    (document.body).text(); 
    

    이 문서 본문에 포함 된 모든 요소의 텍스트를 가져옵니다. 이것에 대한 정규 표현식을 사용하면 필요한 것을 얻을 수 있습니다.

    +0

    러스 캠 (Russ Cam)에게 감사의 말을 전합니다.하지만 실제로 CMS가 머리에 못을 박았습니다. 텍스트를 약간 엉망으로 만든 .text() 문제가있었습니다. 내가 질문을 게시 한 후에 그 문제를 생각한대로 나는 그것을 분명히 말하지 않았다. – GnrlBzik

    관련 문제