2017-11-30 1 views
0

jquery text() 함수와 HTML 엔터티의 조합을 이해하는 데 어려움이 있습니다. text() 함수가 특수 HTML 엔터티를 일반 문자로 다시 변환하는 것으로 보입니다. 특히,이 코드가 동작하는 방법을 확실하지 오전 : 출력이 HTML 엔티티 이스케이프있는 문자열 것으로 보인다HTML 엔터티가 포함 된 jquery text()의 특성 이해

$(document).ready(function() { 
 
    var value = $("#test").text(); 
 
    console.log(value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="test"> 
 
    &lt;h1&gt; test &lt;/h1&gt; 
 
</div>

때문이다. 이것은 text() 함수가 HTML 엔티티를 이스케이프 처리하지 않는다는 것을 의미합니까?

수정/추후 업데이트 : text()은 실제 텍스트 콘텐츠 만 반환하므로이 코드 스 니펫을 이해하는 데 문제가 있습니다.이 스 니펫은 이스케이프 처리되지 않은 문자를 반환합니다. text()이 이스케이프 된 문자열을 반환하면 html 함수가 형식이 지정된 문자열을 반환하는 이유는 무엇입니까?

$(document).ready(function() { 
 
    var value = $("#test").text(); 
 
    console.log(value); 
 
    $("#test").html(value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="test"> 
 
    &lt;h1&gt; test &lt;/h1&gt; 
 
</div>

+1

예! 이렇게하면 '& lt; h1 & gt; 시험 & lt;/h1 & gt; ' –

+0

고마워! 나는 질문을 편집하고 후속 조치를 추가했다. – Sleik

답변

1

text() 특별한 아무것도되지 않습니다. 원래 HTML을 구문 분석 할 때 브라우저 자체가 엔티티를 렌더링 된 문자로 변환합니다. 따라서 HTML에 &lt;h1&gt;을 쓸 때 브라우저는이를 리터럴 문자열 <h1>으로 변환합니다. .text()은이 텍스트를 반환하기 만합니다.

.html()을 사용하면 문자열이 HTML로 구문 분석되므로 <h1>이 HTML 태그로 렌더링되고 서식이 지정된 결과가 나타납니다.

-1

원본을 보면 당신이 요소로부터는 TextContent을 데려가는 것을 볼 수 있습니다. https://j11y.io/jquery/#v=git&fn=jQuery.fn.text

는 TextContent가 무엇의 일부 문서 : https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent

$(document).ready(function() { 
 
    var value = $("#test").text(); 
 
    console.log(value); 
 
    //https://j11y.io/jquery/#v=git&fn=jQuery.fn.text 
 
    console.log($("#test").get(0).textContent); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="test"> 
 
    &lt;h1&gt; test &lt;/h1&gt; 
 
</div>

관련 문제