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

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

구조는 다음과 같습니다.

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

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



답변

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

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

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


답변

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

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

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

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

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


답변

var d = $('.text_div');
d.text(d.text().trim().replace(/contains/i, "hello everyone"));


답변

매우 간단하게이 코드를 사용하면 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/


답변

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

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

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


답변