jQuery 찾기 및 문자열 바꾸기
웹 사이트 어딘가에 특정 텍스트가 있습니다. "lollypops"라고합시다.이 문자열의 모든 항목을 "marshmellows"로 바꾸고 싶습니다. 문제는 텍스트가 정확히 어디에 있는지 모른다는 것입니다. 다음과 같이 할 수 있다는 것을 알고 있습니다.
$(body).html($(body).html().replace('lollypops', 'marshmellows'));
이것은 아마도 작동하지만 가능한 한 적은 HTML을 다시 작성해야하므로 다음과 같이 생각하고 있습니다.
- 문자열을 검색
- 가장 가까운 부모 요소 찾기
- 가장 가까운 부모 요소 만 다시 작성
- 예를 들어, 속성에서조차도 대체하십시오
class
.src
예를 들어, 나는 다음과 같은 구조를 가질 것입니다.
<body>
<div>
<div>
<p>
<h1>
<a>lollypops</a>
</h1>
</p>
<span>lollypops</span>
</div>
</div>
<p>
<span class="lollypops">Hello, World!</span>
<img src="/lollypops.jpg" alt="Cool image" />
</p>
<body>
이 예에서 "lollypops"의 모든 발생은 대체 <img src="...
되고 동일하게 유지되며 실제로 조작되는 유일한 요소는 <a>
및 둘 다 <span>
입니다.
아무도 이것을하는 방법을 알고 있습니까?
다음과 같이 할 수 있습니다.
$("span, p").each(function() {
var text = $(this).text();
text = text.replace("lollypops", "marshmellows");
$(this).text(text);
});
적절한 클래스 이름으로 검사해야하는 텍스트로 모든 태그를 표시하는 것이 좋습니다.
또한 성능 문제가있을 수 있습니다. 일반적으로 jQuery 또는 javascript는 이러한 종류의 작업에 적합하지 않습니다. 서버 측에서하는 것이 좋습니다.
다음과 같이 할 수 있습니다.
$(document.body).find('*').each(function() {
if($(this).hasClass('lollypops')){ //class replacing..many ways to do this :)
$(this).removeClass('lollypops');
$(this).addClass('marshmellows');
}
var tmp = $(this).children().remove(); //removing and saving children to a tmp obj
var text = $(this).text(); //getting just current node text
text = text.replace(/lollypops/g, "marshmellows"); //replacing every lollypops occurence with marshmellows
$(this).text(text); //setting text
$(this).append(tmp); //re-append 'foundlings'
});
예 : http://jsfiddle.net/steweb/MhQZD/
Below is the code I used to replace some text, with colored text. It's simple, took the text and replace it within an HTML
tag. It works for each words in that class tags.
$('.hightlight').each(function(){
//highlight_words('going', this);
var high = 'going';
high = high.replace(/\W/g, '');
var str = high.split(" ");
var text = $(this).text();
text = text.replace(str, "<span style='color: blue'>"+str+"</span>");
$(this).html(text);
});
var string ='my string'
var new_string = string.replace('string','new string');
alert(string);
alert(new_string);
Why you just don't add a class to the string container and then replace the inner text ? Just like in this example.
HTML:
<div>
<div>
<p>
<h1>
<a class="swapText">lollipops</a>
</h1>
</p>
<span class="swapText">lollipops</span>
</div>
</div>
<p>
<span class="lollipops">Hello, World!</span>
<img src="/lollipops.jpg" alt="Cool image" />
</p>
jQuery:
$(document).ready(function() {
$('.swapText').text("marshmallows");
});
참고URL : https://stackoverflow.com/questions/5115152/jquery-find-and-replace-string
'developer tip' 카테고리의 다른 글
PowerShell Set-Content 및 Out-File-차이점은 무엇입니까? (0) | 2020.10.27 |
---|---|
JLabel의 여러 줄 텍스트 (0) | 2020.10.27 |
Xcode의 빌드 구성에 따라 조건부로 파일을 포함하려면 어떻게해야합니까? (0) | 2020.10.26 |
tmux에서 Cb의 키 바인딩을 ca로 설정하면 커서를 줄의 시작 부분으로 이동하려면 어떻게해야합니까? (0) | 2020.10.26 |
EntityManager가 닫힙니다. (0) | 2020.10.26 |