jQuery.extend({
clean: function( elems, context,fragment, scripts ) {
// 변수 선언
var i, j, elem, tag, Wrap, Depth, ; ( !context || typeof context.createDocumentFragment === "정의되지 않음" ) {
0; (elem = elems[i]) != null; i ) {
// elem이 숫자인 경우 변환 문자열로 변환 🎜> elem = ""; 계속;
}
// HTML 문자열을 DOM 노드로 변환
// 배열 항목(문자열)을 DOM 노드로 변환
if ( typeof elem = == "string" ) {
텍스트 노드
if ( !rhtml.test( elem ) ) {
elem = context.createTextNode( elem );
. ie9 아래의 #document-fragment 유형입니다. 브라우저에서 safe는 HTMLDocument 유형 노드이고 nodeNames 배열은 비어 있습니다. div = context.createElement("div");
열,삽입 ,hr, img, input, link, Meta, param의 레이블 외에
// 레이블의 시작과 끝을 나타내는 레이블의 레이블
elem = ELEPLACE (rxhtmltag, "& lt; $ 1 & gt; $2>");
| ) | ["", ""] )[1].toLowerCase();
_기본값;
깊이 = Wrap[0];
div.innerHTML = Wrap[1] elem Wrap[2];
// 오른쪽 깊이로 이동
1. 가장 가까운 소포 요소의 값을 재할당하는 DIV( 즉, 소포 요소의 첫 번째 레이어 포함)
While (깊이--) {
DIV = DIV.LastChild
}}
if ( ! jQuery.support.tbody ) {
// 문자열은
이므로 *아마도 가짜(伪造的) // 判断符串中是否拥유 공tbody标签 hasBody = rtbody.test(elem); // 가장 바깥쪽 레이블이 테이블이고 tbody가 테이블에 수동으로 추가되지 않은 경우 🎜> tbody = tag === "table" && !hasBody ? div.firstChild && div.firstChild.childNodes: // 문자열은 또는 입니다. / 빈 THEAD 또는 TFOOT 태그가 하나만 있는 경우 문자열 // 변수 tBody는 div.childNodes " && !hasBody ? for ( j = tbody.length - 1; j >= 0 ; --j ) { tfoot 태그 if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { 빈 테이블 태그 자동 지우기 Joined tbody tbody [ j ].parentNode.removeChild( tbody [ j ]; // IE는 innerHTML이 사용될 때 선행 공백을 완전히 제거합니다. ~ > } // 처리된 DIV 하위 노드 컬렉션 가져오기(Nodelist) Elem = DIV.CHILDNODES // 가져오기; 조각 컨테이너(매번 새로운 DIV가 필요함) // 다음에 문자열 배열 항목을 반복하기 전에 생성된 div 요소를 지웁니다 div.parentNode.removeChild(div); // elem이 다음과 같은 경우 DOM 노드(텍스트 노드) if ( elem.nodeType ) { ret.push( elem ); } // nodeList 객체의 노드를 반환된 배열에 병합 else { > > ~ // 재설정 defaultChecked 모든 라디오 및 체크박스에 대해 단일 버튼을 다른 태그에 삽입한 후 선택한 상태가 실패합니다(다음 코드 이 버그 수정) if (!Jquery.support.appendchecked) { for (i = 0; (elem = 0; (elem = 0; (elem = 0; ret[i])) != null; i ) { elem.getElementsByTagName != = "정의되지 않음" ) { ~ } // 제공된 문서 조각에 요소 추가 // ret 배열의 각 DOM 노드를 제공된 문서 조각에 삽입 // dom 노드에서 스크립트 노드를 추출하여 ret 배열에 추가 , 위치는 원래 상위 요소의 인덱스 위치 뒤에 있습니다. if (fragment ) { // 각 스크립트 요소의 특수 처리 handlerScript = function( elem ) { // 우리가 실행 가능한 것으로 간주하세요 // ELEM 요소가 존재하지 않거나 Type 값이 JavaScript 또는 ECMAScript인 경우 if (! Elem.type || RScripttype.test (elem.type)) { // IPT를 분리하고 스크립트 배열(제공된 경우) 또는 조각에 저장합니다 // 처리되었음을 나타내기 위해 진실을 반환합니다 스크립트 반환 ? scripts.parent Node?elem.parentNode .removeChild ( elem ) : elem ) : fragment.appendChild( = ret[i]) != null; { 포함된 스크립트 처리 // 문서 조각에 요소 요소를 추가하고 포함된 스크립트를 처리합니다. (스크립트 태그 요소) fragment.appendChild( elem ); if ( typeof elem.getElement sByTagName !== "undefine ") {> // Handlescript Dom을 변경하므로 jquery.merge를 사용하여 enterSure를 사용하세요. 스냅샷 반복 jstags = jquery.grep (jQuery.merge ([], Elem.GetelementsBytagnam e ("script")), Handlescript) ; // 스크립트를 상위 항목 다음에 ret로 연결하고 색인을 그 이상으로 발전시킵니다. ret.splice.apply ( ret, [i 1, 0].concat( jsTags ) ); } } return ret; } });
성명: 본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.