[JQUERY] jQuery를 사용하여 텍스트 문자열을 찾기?
JQUERYjQuery를 사용하여 텍스트 문자열을 찾기?
해결법
-
1.jQuery를는이 방법이 포함되어 있습니다. 여기 당신을위한 단편이다 :
jQuery를는이 방법이 포함되어 있습니다. 여기 당신을위한 단편이다 :
<script type="text/javascript"> $(function() { var foundin = $('*:contains("I am a simple string")'); }); </script>
선택 위에 선택 대상 문자열을 포함하는 모든 요소. foundin는 일치하는 요소를 포함하는 jQuery를 객체가 될 것입니다. https://api.jquery.com/contains-selector/ :에있는 API 정보를 참조하십시오
'*'와일드 카드주의 할 것은 당신이 당신은 아마하지 않으려 신체 요소는 HTML을 포함한 모든 요소를 얻을 수 있습니다 것입니다. 의 이유는 대부분의 jQuery를 다른 장소에서의 예제는 $를 사용하는 것이 ( '사업부는 () "나는 간단한 문자열이다'포함 ')
-
2.보통의 jQuery 셀렉터는 DOM에서 "텍스트 노드"내에서 검색되지 않습니다. 당신이 .contents () 함수를 사용하는 경우, 텍스트 노드가 포함됩니다, 당신은 텍스트 문자열을 검색 필터에 텍스트 만 노드 및 nodeValue를 속성을 nodeType에 속성을 사용할 수 있습니다.
보통의 jQuery 셀렉터는 DOM에서 "텍스트 노드"내에서 검색되지 않습니다. 당신이 .contents () 함수를 사용하는 경우, 텍스트 노드가 포함됩니다, 당신은 텍스트 문자열을 검색 필터에 텍스트 만 노드 및 nodeValue를 속성을 nodeType에 속성을 사용할 수 있습니다.
$('*', 'body') .andSelf() .contents() .filter(function(){ return this.nodeType === 3; }) .filter(function(){ // Only match when contains 'simple string' anywhere in the text return this.nodeValue.indexOf('simple string') != -1; }) .each(function(){ // Do something with this.nodeValue });
-
3.이것은 "나는 간단한 문자열입니다"를 포함 바로 잎 요소를 선택합니다.
이것은 "나는 간단한 문자열입니다"를 포함 바로 잎 요소를 선택합니다.
$('*:contains("I am a simple string")').each(function(){ if($(this).children().length < 1) $(this).css("border","solid 2px red") });
테스트 할 수있는 주소 표시 줄에 다음을 붙여 넣습니다.
javascript: $('*:contains("I am a simple string")').each(function(){ if($(this).children().length < 1) $(this).css("border","solid 2px red") }); return false;
방금 잡아하려면 "나는 간단한 문자열입니다." 처음과 같이 요소의 텍스트를 바꿈.
$('*:contains("I am a simple string")').each(function(){ if($(this).children().length < 1) $(this).html( $(this).text().replace( /"I am a simple string"/ ,'<span containsStringImLookingFor="true">"I am a simple string"</span>' ) ) });
다음이 작업을 수행.
$('*[containsStringImLookingFor]').css("border","solid 2px red");
-
4.당신은 단지 텍스트 당신, 당신이 사용할 수에있는 거 검색에 노드에 가장 가까운을 원하는 경우 :
당신은 단지 텍스트 당신, 당신이 사용할 수에있는 거 검색에 노드에 가장 가까운을 원하는 경우 :
$('*:contains("my text"):last');
당신의 HTML의 모습이 같은 경우에도 작동합니다 :
<p> blah blah <strong>my <em>text</em></strong></p>
즉 그 전체 문자열을 포함하는 마지막 태그이기 때문에 위의 선택기를 사용하여,의 태그를 찾을 수 있습니다.
-
5.하이라이트 (jQuery 플러그인)를 살펴 보자.
하이라이트 (jQuery 플러그인)를 살펴 보자.
-
6.이것이 내가 찾던으로 나에게 90 %를 가지고 있지만 작동하지 않았다으로 그냥 토니 밀러의 대답에 추가. .length> 0을 추가; 그의 코드의 끝에 내 스크립트 작업을 얻었다.
이것이 내가 찾던으로 나에게 90 %를 가지고 있지만 작동하지 않았다으로 그냥 토니 밀러의 대답에 추가. .length> 0을 추가; 그의 코드의 끝에 내 스크립트 작업을 얻었다.
$(function() { var foundin = $('*:contains("I am a simple string")').length > 0; });
-
7.이 기능은 작동합니다. 우리가 리프 노드의 별개의 목록을 얻을 때까지 기본적으로 재귀 조회를 수행합니다.
이 기능은 작동합니다. 우리가 리프 노드의 별개의 목록을 얻을 때까지 기본적으로 재귀 조회를 수행합니다.
function distinctNodes(search, element) { var d, e, ef; e = []; ef = []; if (element) { d = $(":contains(\""+ search + "\"):not(script)", element); } else { d = $(":contains(\""+ search + "\"):not(script)"); } if (d.length == 1) { e.push(d[0]); } else { d.each(function () { var i, r = distinctNodes(search, this); if (r.length === 0) { e.push(this); } else { for (i = 0; i < r.length; ++i) { e.push(r[i]); } } }); } $.each(e, function () { for (var i = 0; i < ef.length; ++i) { if (this === ef[i]) return; } ef.push(this); }); return ef; }
from https://stackoverflow.com/questions/926580/find-text-string-using-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] Google 크롬 로컬 파일에서 URL을로드 XMLHttpRequest 객체를 사용하도록 허용 (0) | 2020.09.30 |
---|---|
[JQUERY] 의 contentEditable 사업부에 캐럿에 HTML을 삽입 (0) | 2020.09.30 |
[JQUERY] 문자열에서 추출 호스트 이름 (0) | 2020.09.30 |
[JQUERY] 메이크업은 iframe 높이를 동적 JQUERY / 자바 스크립트있어 문을 내용에 따라 (0) | 2020.09.30 |
[JQUERY] 어떻게 로컬 스토리지에 이미지를 저장하고 다음 페이지에 표시 할? (0) | 2020.09.30 |