2013-06-11 2 views
0

여기서는별로 혼동하지 않습니다. 나는이 구조를 갖고 싶다.jQuery를 사용하여 중첩 된 요소 만들기

<ul class="cont"> 
    <li> 
     <a href="http://www.youtube.com/watch?v=my_video_id" title="My title"> 
      <img alt="my alt" src="http://img.youtube.com/vi/my_video_id/default.jpg" <="" a=""> 
     </a> 
    </li> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
</ul> 

나는 (내가 문제의 추상보기 여기를 피할 설명) 제목을 탈출 원으로,

list_data += '<li><a href="' + url + '" title="' 
     + feedTitle + '"><img alt="' + feedTitle + '" src="' 
     + thumb + '"</a></li>'; 

사용하여, 나는 그것을 JQuery와 방법을 시도 그랬어 . 즉,

$('<img/>').attr({ 
     alt: feedTitle, 
     src: thumb 
    }).wrap('<a/>').attr({ 
     id: 'id_' + videoID, 
     href: url, 
     title: description, 
     rel: 'external' 
    }).wrap('<li/>').attr({ 
     class: 'video' 
    }).appendTo(".cont"); 

이것은 작동하지 않습니다. 나는 아주 잘못된 것을하고있다. 이 문제를 해결하는 방법?
JSFIDDLE : wrapdocs에서 http://jsfiddle.net/e54VX/

+0

당신은 _chaining_ 의미합니까? jQuery에 결코 배타적이지 않으며 결코 "방법"이 아닙니다. –

+0

예상되는 결과가 무엇인지 모르겠지만 jsFiddle이 축소판 목록으로 보이는 것을 표시하는 것처럼 보이게됩니다. –

+0

@GrantThomas : 'attr'을 사용하여 요소를 만드는 jquery 방법. @ Bartitude : 예상되는 HTML이 질문의 맨 위에 게시되었습니다. – naveen

답변

2

는 :

이 방법은 목적 체인 요소의 원래 집합을 반환합니다.

내부가 아닌 외부 요소로 작업하려면 각각 wrap 다음에 .parent()을 호출해야합니다. "JQuery와 방법"으로

$('<img/>').attr({ 
    alt: feedTitle, 
    src: thumb 
}).wrap('<a/>').parent().attr({ 
    id: 'id_' + videoID, 
    href: url, 
    title: description, 
    rel: 'external' 
}).wrap('<li/>').parent().attr({ 
    class: 'video' 
}).appendTo(".cont"); 

http://jsfiddle.net/e54VX/7/

+0

감사합니다. 죄송합니다. 문서를 제대로 읽지는 못했지만 ... 여전히 angularjs 효과로 감추고 있습니다. 감사. 나는 더 간단한 방법이 있습니까? – naveen

+0

가독성 관점에서 볼 때, 나는 그것을 반대로하고 싶다. 안쪽에서 시작해서 줄 바꿈하는 대신에 나는 바깥 쪽부터 시작하여 안쪽으로 덧붙입니다. –

관련 문제