2013-07-25 6 views
5

이전 버전의 jquery 1.9.1 버전에서 .appendTo() API의 동작이 변경된 것을 이해하려고합니다. 업그레이드에서, 그것은 1.9로jquery1.9.1의 .appendTo() 변경

을 말한다 (.appendTo, .insertBefore, .insertAfter.replaceAll는) 항상 새로운 세트를 돌려 이러한 방법을 안내 그들을 체인과 .end() 방법으로 지속적으로 사용할 수 만들기. 1.9 이전에는 단일 대상 요소가있는 경우에만 이전 집합 을 반환했습니다. 이 메서드는 항상 대상 요소에 모든 요소 의 집계 집합을 반환했습니다.

내가이 API 여기

<div class="test">hello 
</div> 

var $ = jQuery.noConflict(); 
var a =$("<p> hi </p>").appendTo("div.test").attr("style","background-color:red"); 
console.log(a); 

의 간단한 사용과 시도 fiddle link

내가 사업부에 단락 요소를 추가하고 배경을 변경하고있다 결과 요소의 1.7.2와 1.9.1 두 가지를 모두 시도했는데, 추가 한 결과가 단락 요소 인 경우입니다.

그러나 1.9 이전에는 이전 세트가 반환 될 것이라고 설명되어 있습니다 (예를 들어 오래된 세트는 내가 믿는 div 요소를 나타냄). 나는 이것에 대해 잘못된 생각을 갖고 있습니다.

제 이해를 돕기 바랍니다.

+1

그것이 리턴 [P, prevObject : jQuery.fn.jQuery.init을 [1], 문맥 : 미정 JQuery와 "1.9.1"생성자 : 함수 INIT : 함수 ...] 1.7.2 : [p, 생성자 : 함수, 초기화 : 함수, 선택자 : "", jquery : "1.7.2 "크기 : 기능 ...] 그 비교와 더 밀접하게 그들을 조사 당신은 그들이 실제로 서로 약간의 차이가 있음을 유의 또한 그들이 사전에 완전히 일치하지 않았다 의미, 더 일치한다고 – Lemonade

+1

... ') ('끝을 사용해보십시오 :'$ ("

하이

") .appendTo를 ("div.test") 말을() ATTR ("스타일", "배경 색을 : 빨간색")..' – meze

+0

을 더. 문제 ("div.test")'var에 A = $를 사용하여 추가 ("

하이

");. ' – vladkras

답변

1

"이 메서드는 항상 모든 요소의 집계 집합을 반환했습니다."라는 말은 appendTo()이 호출 된 jQuery 컬렉션을 반환한다는 의미입니다. 함수에 전달 된 집합이 아닙니다.

귀하의 경우이 단락이됩니다. 따라서 "div.test"가 단일 요소 타겟 인 경우 사용하는 jQuery 버전과 관계없이 반환해야합니다 (그런데 $('div.test')을 의미하지 않습니까?) 또는 1.9를 사용하는 경우 "div.test"가 이상을 하나 이상의 요소로 반환합니다.

이것은 대부분의 호출로 jQuery 체인을 사용하는 경우입니다. funciton은 호출 된 요소를 반환하므로 사용자가 다른 요소를 계속 수행 할 수 있습니다. 나는이 경우를 으로 생각하고있다. manipulation의 모든은 jQuery 함수의 하위 집합이다.

+0

감사합니다.. – SpreeTheGr8

0

그들은 단일 대상 요소에 첨부 된 요소를 반환했습니다. 대상 요소를 찾을 수없는 경우에도.

새 버전은 대상 요소의 수와 관계없이 전체 집합을 반환합니다. 대상 요소를 찾지 못하면 더 이상 아무것도 반환하지 않습니다.

즉, 추가 된 데이터 대신 생성 된 구조체를 반환합니다. 1.9.1에서