div에이 텍스트가 포함 된 경우 jQuery, 텍스트의 해당 부분을 바꿉니다.


79

제목처럼 div에서 텍스트의 특정 부분을 바꾸고 싶습니다.

구조는 다음과 같습니다.

<div class="text_div">
    This div contains some text.
</div>

예를 들어 "포함"만 "안녕하세요 모두"로 바꾸고 싶습니다. 이에 대한 해결책을 찾을 수 없습니다.


텍스트가 '이 div에는 일부 문자가 포함 된 텍스트가 포함되어 있고 두 번째가 아닌 첫 번째 포함을 변경하고 싶습니다. 또는 아무 단어 나 선택하면 미리 정의 된 단어로 변경됩니다.
stockBoi

답변:


145

text메서드 를 사용하고 수정 된 텍스트를 반환하는 함수를 전달할 수 있습니다 . 기본 String.prototype.replace메서드를 사용하여 대체를 수행 할 수 있습니다.

​$(".text_div").text(function () {
    return $(this).text().replace("contains", "hello everyone"); 
});​​​​​

다음은 작동하는 예 입니다.


2
모든 발생에 대해 정규식 / iwantreplacethis / g를 사용할 수 있습니다.
Aiphee

1
이 : 하나의 간단한 질문에 대해 정말 감사 : 반환하지 않고이 작업은하지 않는 이유
아론 매튜스에게

2
@AaronMatthews이 대답은 아주 오래 전이지만 jQuery text메서드가 함수를 전달할 때 선택 텍스트를 해당 함수의 반환 값으로 설정 하기 때문이라고 생각합니다 . return텍스트가 없으면 아무 것도 대체되지 않습니다.
James Allardice

12

가능하다면 다음과 같이 바꾸고 싶은 단어를 span 태그로 감쌀 수 있습니다.

<div class="text_div">
    This div <span>contains</span> some text.
</div>

그런 다음 jQuery로 내용을 쉽게 변경할 수 있습니다.

$('.text_div > span').text('hello everyone');

span 태그로 래핑 할 수없는 경우 정규식을 사용할 수 있습니다.



6

매우 간단하게이 코드를 사용하면 HTML은 유지되고 래핑되지 않은 텍스트 만 제거됩니다.

jQuery(function($){

    // Replace 'td' with your html tag
    $("td").html(function() { 

    // Replace 'ok' with string you want to change, you can delete 'hello everyone' to remove the text
          return $(this).html().replace("ok", "hello everyone");  

    });
});

다음은 전체 예입니다. https://blog.hfarazm.com/remove-unwrapped-text-jquery/


3

포함 선택기 를 사용하여 특정 텍스트를 포함하는 요소를 검색 할 수 있습니다.

var elem = $('div.text_div:contains("This div contains some text")')​;
elem.text(elem.text().replace("contains", "Hello everyone"));

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​


내 문자열에 두 개 이상의 대상 단어가 포함 된 경우 두 개 이상의 단어를 대체합니다. 그러면 무엇이 될까요?
Tamaghna Banerjee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.