2012-08-12 3 views
0

이 객체 객체를 반환합니다. 어떻게 src의 배열을 만들 수 있습니까?jquery가 attr ('src')에있는 객체를 반환하는 이유

$('#mainContainerPortfolio #activateBox').click(function(){ 

    var clickedAlt = $(this).children('img').attr('alt'); 
    var imgs = $('#mainContainerPortfolio #projectImg[alt="'+clickedAlt+'"]'); 
    imgs.src; 
    var i = []; 
    i.push(imgs); 

    console.log(i); 
}); 

답변

3

코드에서 imgs은 DOM 요소가 아닌 jQuery 객체입니다. 따라서 .src 속성이 없습니다.

var src = imgs.attr("src"); 

또는, jQuery 오브젝트에서 최초의 DOM 요소를 얻을 :

당신이 jQuery를 객체의 이미지의 .src 속성을 원하는 경우

는, 당신은 다음 중 하나를 수행해야

var src = imgs[0].src 

또한 코드에 몇 가지 다른 오류가 있습니다. 당신이 배열로 클릭하는 모든 요소의 src 값을 축적하려는 경우, 당신은 같은 것을 할 수있는 : 나는 당신의 선택의 문제도 있다고 생각

$('#mainContainerPortfolio #activateBox').click(function(){ 

    var clickedAlt = $(this).children('img').attr('alt'); 
    var imgs = $('#mainContainerPortfolio #projectImg[alt="'+clickedAlt+'"]'); 
    var srcs = imgs.map(function(index, elem) { 
     return(elem.src); 
    }).get(); 

    console.log(srcs); 
}); 

을 만 할 수 있기 때문에 id="projectImg"이있는 요소가 하나 있으므로 [alt = " '+ clickedAlt +'"] 속성을 사용해야 할 이유가 없어야합니다.

마찬가지로 '#mainContainerPortfolio #activateBox'은 ID가 activateBox 인 개체가 하나만있을 수 있기 때문에 '#activateBox'으로 변경 될 수 있습니다.

+0

완벽한 당신에게 도움 – Sam

+2

@Sam에 대한 선생님 감사합니다 - 당신의 선택기에 대한 내 추가 의견을 유의하시기 바랍니다. – jfriend00

+0

map()을 사용하여 테스트 해봤는데 잘 작동합니다 ... – Sam

1

imgs입니다. 이 줄 :

imgs.src; 

전혀 없습니다. 그것은 단지 그것을 반환합니다. 반환 된 값으로는 아무 것도 수행되지 않습니다. 해당 변경 :

imgs = imgs.attr("src"); 

하고 그것을 잘

1

당신은 배열을 얻을 수 .MAP 사용할 수 있습니다 작동합니다.

i = imgs.map(function() { 
    return $(this).attr('src'); 
}); 
관련 문제