2014-04-05 1 views
3

정상입니까?복제 된 항목에 jquery 선택자를 사용할 수 없습니다.

// Put testimonials in slides 
     var testimonialEls = $("#block-testimonials").children(); 
     var testimonialCache = testimonialEls.clone(); 
     //testimonialEls.remove(); 
     var testimonials = []; 

     console.dir(testimonialCache.siblings("article").not(".featured,.featured-wide")); 
     console.dir(testimonialEls.siblings("article").not(".featured,.featured-wide")); 

testimonialEls는 testimonialCache은 0

나는 복제 된 항목에 JQuery와 선택기를 사용할 수 없습니다를 반환 작동?

http://jsfiddle.net/MUREY/2/

+0

"정상입니까?" 예, 특정 요소를 복제해도 모든 형제/자손도 DOM도 복제되지 않습니다 ... 형제 자매를 복제하거나 아무도 알지 못하는 여기에서하려는 모든 작업을 복제해야합니다. 편집 : 복제는 요소의 복사본을 만듭니다.이 사본은 DOM의 일부가 아니므로 형제를 대상으로 할 수 없습니다. 어쩌면 모든 자식이 복제 된 요소의 일부가되도록 부모를 복제하는 것일 수도 있습니다. –

+0

@ A.Wolff 제 경우에는 특별히 까다로운 것은 없습니다 : http://jsfiddle.net/MUREY/ –

+2

'filter()'를 사용하고 싶습니다. 여기, 아니'find()'http://jsfiddle.net/MUREY/3/ –

답변

1

요소는 모든 아이들과 함께 복제됩니다 -하지만 그 형제 자매의와 (즉 가지 분명한 사실이야, 나는 가정한다). 해당 문서를 인용 :

.clone() 방법은 의미 일치 요소의 집합의 깊은 복사를 수행하는 복사합니다 일치하는 요소뿐만 아니라 자손 요소와 텍스트 노드의 모든 . 더 나은 귀하의 케이스에 맞는 중 또는 자손 -

는 당신이 실제로 할 필요가 자사의 직접 아이들 중 하나를 확인 후, (귀하의 경우 '# 블록 - 평가')가 '루트'섹션을 복제하는 것입니다.

// Put testimonials in slides 
var testimonialEls = $("#block-testimonials"); 
var testimonialCache = testimonialEls.clone(); 

console.dir(testimonialCache.find("article").not(".featured,.featured-wide")); 
console.dir(testimonialEls.find("article").not(".featured,.featured-wide")); 

Demo. 다른 방법으로, 당신은 다음 .filter()에 필요한 것들을 확인 만 잎 요소를 저장할 수 있습니다 :

var testimonialEls = $("#block-testimonials").children(); 
// ... 
console.dir(testimonialEls.filter("article").not(".featured,.featured-wide")); 

... 그것은 또한 당신에게 동일한 결과를 줄 것이다. 당신은 단지 당신의 캐시에 article 요소를 포함 할 필요가있는 경우 그러나, 명시 적으로 이러한 제한을 설정

var testimonialEls = $("#block-testimonials").children('article'); 
// ... 
console.dir(testimonialCache.not(".featured,.featured-wide")); 
이제 article 확인

분명히 중복 - .filter() 전화는 그 이유는, 그 캐시에 다른 요소가 없을 것 더 이상 필요하지 않습니다.

+0

나는 find()도 시도했다. –

+0

작업중인 HTML 구조를 질문에 추가하십시오. 따라서 주요 문제를 해결하기위한 가능한 접근 방법을 보여주는 피들 (fiddle)을 만들 수 있습니다. – raina77ow

+0

@salivan 질문에 대해'find()'를 시도한 목적은 무엇입니까? 관련 HTML 마크 업도 게시하십시오! –

관련 문제