문제

jQuery 객체를 문자열로 어떻게 변환합니까?

도움이 되었습니까?

해결책

전체 HTML 문자열을 요구한다고 가정합니다. 이 경우 이런 일이 트릭을 수행 할 것입니다.

$('<div>').append($('#item-of-interest').clone()).html(); 

이것은 더 깊이 설명됩니다 여기, 그러나 본질적으로 관심있는 항목을 감싸고 조작을 수행하고 제거하고 HTML을 잡기 위해 새 노드를 만듭니다.

문자열 표현 직후에 new String(obj).

업데이트

2009 년에 원래 답변을 썼습니다. 2014 년 현재 대부분의 주요 브라우저는 이제 지원합니다. outerHTML 기본 재산으로서 (예를 들어, Firefox 그리고 인터넷 익스플로러), 당신은 할 수 있습니다 :

$('#item-of-interest').prop('outerHTML');

다른 팁

jQuery 1.6에서는 더 우아한 솔루션 인 것 같습니다.

$('#element-of-interest').prop('outerHTML');

.get (0)를 사용하여 기본 요소를 잡고 outerhtml 속성을 얻으십시오.

var $elem = $('<a href="#">Some element</a>');
console.log("HTML is: " + $elem.get(0).outerHTML);

좀 더 구체적 일 수 있습니까? 당신이 얻으려고한다면 HTML 태그 내부에서 다음과 같은 작업을 수행 할 수 있습니다.

HTML 스 니펫 :

<p><b>This is some text</b></p>

jQuery :

var txt = $('p').html(); // Value of text is <b>This is some text</b>

HTML 노드 (개체)에서 사용할 수있는 속성과 메소드를 찾는 가장 좋은 방법은 다음과 같은 작업을 수행하는 것입니다.

console.log($("#my-node"));

jQuery 1.6+에서 OUTERHTML을 사용하여 문자열 출력에 HTML 태그를 포함시킬 수 있습니다.

var node = $("#my-node").outerHTML;

jQuery는 여기에 있습니다.

jQuery.fn.goodOLauterHTML= function() {
    return $('<a></a>').append( this.clone() ).html();
}

모든 HTML 물건을 반환하십시오.

$('div' /*elys with HTML text stuff that you want */ ).goodOLauterHTML(); // alerts tags and all

이것은 나에게 잘 작동하는 것 같습니다.

$("#id")[0].outerHTML

허용 된 답변은 텍스트 노드를 다루지 않습니다 (정의되지 않은 인쇄).

이 코드 스 니펫은 다음을 해결합니다.

var htmlElements = $('<p><a href="http://google.com">google</a></p>↵↵<p><a href="http://bing.com">bing</a></p>'),
    htmlString = '';
    
htmlElements.each(function () {
    var element = $(this).get(0);

    if (element.nodeType === Node.ELEMENT_NODE) {
        htmlString += element.outerHTML;
    }
    else if (element.nodeType === Node.TEXT_NODE) {
        htmlString += element.nodeValue;
    }
});

alert('String html: ' + htmlString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

.html ()를 사용하기 위해 DOM에 복제하고 추가 할 필요가 없습니다.

$('#item-of-interest').wrap('<div></div>').html()

사용하는 것이 가능할 수 있습니다 jQuery.makeArray(obj) 유틸리티 기능 :

var obj = $('<p />',{'class':'className'}).html('peekaboo');
var objArr = $.makeArray(obj);
var plainText = objArr[0];

HTML 요소를 어딘가에 전달하고 요소에 대한 고유 한 쿼리를 만들어 요소로 다시 구문 분석하려면 다음과 같은 요소로 다시 구문 분석하려면 다음과 같습니다.

// 'e' is a circular object that can't be stringify
var e = document.getElementById('MyElement')

// now 'e_str' is a unique query for this element that can be stringify 
var e_str = e.tagName
  + ( e.id != "" ? "#" + e.id : "")
  + ( e.className != "" ? "." + e.className.replace(' ','.') : "");

//now you can stringify your element to JSON string
var e_json = JSON.stringify({
  'element': e_str
})

~보다

//parse it back to an object
var obj = JSON.parse( e_json )

//finally connect the 'obj.element' varible to it's element
obj.element = document.querySelector( obj.element )

//now the 'obj.element' is the actual element and you can click it for example:
obj.element.click();
new String(myobj)

전체 객체를 문자열로 직렬화하려면 사용하십시오. JSON.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top