2016-07-12 4 views
2

여기에 li가있는 nav은 텍스트로 구성된 앵커 태그와 스팬입니다. 내가 달성하고자하는 것은 jquery replaceWith를 사용하여 nav의 모든 스팬을 대체하는 것입니다. 그러나 나는 그것을 작동시키는 것처럼 보이지 않습니다. 이것이 제가 작성한 코드입니다. 내 오류는 무엇입니까?replaceWith Jquery 2 개 이상의 이미지가있는 경우 작동하지 않습니다.

<script> 
$(document).ready(function() { 
    //store img in an array. 
    var imgArray= [ "<img class=\"imgNav\" src=\"https://irp-cdn.multiscreensite.com/abc3fe9a/dms3rep/multi/services_icon_1-123x123.png\"/>", 
    "<img class=\"imgNav\" src=\"https://irp-cdn.multiscreensite.com/abc3fe9a/dms3rep/multi/services_icon_4-123x123.png\"/>","<img class=\"imgNav\" src=\"https://irp-cdn.multiscreensite.com/abc3fe9a/dms3rep/multi/services_icon_66-123x123.png\"/>" ]; 



     $('.dmUDNavigationItem_010101661768 > span.navItemText').replaceWith(imgArray[0]); 
     $('.dmUDNavigationItem_010101628177 > span.navItemText').replaceWith(imgArray[1]); 
     /* if I put this third one in the script it doesn't work. 
     $('.dmUDNavigationItem_010101420041 > span.navItemText').replaceWith(imgArray[2]); 
     */ 



}); 
</script> 

이것은 jsbin의 HTML 링크입니다. http://jsbin.com/magofarivi/edit?html,output

+0

제공 그게 효과가 있어야합니다. 다음은 JS를 사용하는 간단한 예입니다. [Codepen] (http://codepen.io/anon/pen/RRjAvG). 내 생각 엔 당신의 클래스 이름이 3 번째 것에서 틀린 것이지만 html이 제공되지 않았기 때문에 우리는 말할 수 없습니다. 또한 루프에 있어야합니까? 현재, 그것은 각각의 selector에 대해'replaceWith()'호출을 세 번씩 실행합니다. –

+0

나는 첫 번째 시도에서 img 배열을 console.log에 forloop로 사용하고 있었다. – icedoge

+0

관련 코드 만 제공해주십시오. 더 이상 사용하지 않으면 질문에 포함되어서는 안됩니다. 또한 JS Bin의 html로 코드가 예상대로 작동합니다. 그것은 다른 것임에 틀림 없다. [Codepen] (http://codepen.io/anon/pen/BzmKqq) –

답변

0

왜? 즉시 루프의 첫 번째 반복에서 그 요소를 교체로하기 때문에 ... 더 이상 더 반복

에 교체 할 존재하지 당신이 뭘 하려는지의

전체 범위는 샘플 HTML없이 명확하지 않다가