제목처럼 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");
});
다음은 작동하는 예 입니다.
text
메서드가 함수를 전달할 때 선택 텍스트를 해당 함수의 반환 값으로 설정 하기 때문이라고 생각합니다 . return
텍스트가 없으면 아무 것도 대체되지 않습니다.
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"));