2013-10-08 3 views
1

이것은 내가 오래 전 배웠어야 할 것이지만 어떻게 든 결코 그렇게하지 못했습니다.다중 선택을 처리하는 Jquery

var productDivs = $('#HomeNewProducts .ProductList li'); 

여기 li과 그 자녀를 여러 개 선택하는 간단한 줄이 있습니다. 이제,이 요소들 각각으로부터 링크를 추출하여 추가 할 요소를 연결하기 위해 링크를 사용한다고 가정 해 봅시다.

var link = $('#HomeNewProducts .ProductList li .ProductDetails a').attr('href'); 
productDivs.append('<a href=\"' . link . '\"><img src="#" /></a> '); 
+0

질문 불분명 선택한 요소의 그룹을 반복하는 .each()를 사용 : " '요소를 each''에서 A' 링크를 선택하십시오." 얼마나 많은 링크를 추출 할 수 있습니까? 추가하는 "요소"에 여러 링크를 어떻게 연결할 수 있습니까? 명확히하고 [Fiddle] (http://jsfiddle.net/)을 만드십시오. – gibberish

+0

무엇이 질문입니까? –

+0

"이것을 덧붙이는 데 사용하려면 요소를 연결하는 데 사용하십시오"라는 문장을 다시 쓰면 문장 부호를 사용하는 것이 좋습니다. 질문을 별도의 줄에 적어주십시오. – Tauseef

답변

2

map는 컬렉션 속성 컬렉션을 추출하기위한 좋은 :

// get .`attr('href')` from each element 
var links = $('#HomeNewProducts .ProductList li .ProductDetails a'); 
var hrefs = links.map(function(link) { 
    return $(link).attr("href"); 
}); 

하지만 당신은 요소의 집합을 반복하고, 각각에 무언가를 추가 할 것 같습니다 있기 때문에, 그런 것 같아요 일반적인 생각의

$('#HomeNewProducts .ProductList li').each(function(index, element) { 
    // find child link of the current element 
    var link = $(element).find(".ProductDetails a").attr('href'); 

    // append to the current element 
    $(element).append('<a href=\"' . link . '\"><img src="#" /></a> '); 
}); 

Here's a simplified Fiddle : 당신은 jQuery의 each합니다.

+0

감사합니다. .each() 문서를 살펴 보았지만이 방법으로 사용할 수 있다는 것을 깨닫지 못했습니다. –

4

이 시도 :

var link = $('#HomeNewProducts .ProductList li .ProductDetails a').attr('href'); 
productDivs.append('<a href=\"' + link + '\"><img src="#" /></a> '); 

더하기 기호가 제대로 문자열로 link 변수를 삽입해야합니다.

+0

당신이 옳습니다. Javascript는 협상을위한 +입니다. 나는 PHP에서 생각하고 있었다 –

+0

그것은 일어난다, 나는 확신한다. 비록 다른 답변들도 확실히보아야합니다. 나는 그들이 나보다 더 잘 커버한다고 생각한다. – Kendra

0

li 요소를 이미 productDivs에 캐시 했으므로 이후 자손을 검색 할 때 유용합니다.

그런

var productDivs = $('#HomeNewProducts .ProductList li'); 
var link = productDivs.find('.ProductDetails a').each(function(){ 
    // do the appending from here 
    // this.href refers to the current link 

    productDivs.append('<a href=\"' + this.href + '\"><img src="#" /></a>'); 
}); 
관련 문제