2013-01-08 3 views
-2

메인 폴더가 "main"입니다. 내부에는 "test1.html"이라는 이름의 페이지가 있습니다. 이미지 폴더도 있습니다. 이미지 폴더의 이미지는 "pic1.png"입니다.폴더에 따라 img src를 바꿉니다.

"main"폴더에는 "test2.html"페이지가있는 "sub"라는 하위 폴더가 있습니다.

시나리오 2 : 두 페이지 (루트 폴더와 하위 폴더)에 jquery를 통해 img 태그에 pic1.png를 삽입합니다. 다른 페이지의 src를 어떻게 처리해야합니까? 즉,

test1.html - 이미지/pic1.png

test2.html -

+0

"다른 페이지의 src 처리"는 무엇을 의미합니까? 혼동 – bipen

+0

obv. 이미지의 src 속성이 페이지의 위치에 따라 변경되어야한다는 것을 의미합니다. 즉, 페이지가 루트 폴더 또는 하위 폴더에 있습니다. – Mak

답변

0

당신은 정규식으로 위치를 확인하고에 ATTR 기능을 사용하여 SRC를 적용 할 수 있습니다 ../images/pic1.png jQuery를이

(''+window.location).match(/http:\/\/[^\/]*\/*root\/?(.*)/)[1] 

이 먼저 슬래시없이 루트 후 URL의 모든 일치합니다. 이 루트 디렉토리에 있다면

은 비어있을 것입니다 그리고 당신은이 페이지에 모든 이미지의 src 속성을 변경합니다

var path = (''+window.location).match(/http:\/\/[^\/]*\/*root\/?(.*)/)[1] 
if (path) { 

    var prefix = ''; 
    for (var i=path.match(/\//).length;i--;) { 
     prefix += '../'; 
    } 
    $('img').each(function() { 
     var $this = $(this) 
     $this.attr('src', prefix + $this.attr('src')); 
    }); 
} 

그 변수에서 슬래시 얼마나 많은에 ..을 적용 할 수 있습니다

3

왜 돈 두 소스 모두 웹 루트의 상대 경로를 포함하지 마십시오.

/images/pic1.png 

여기에 상대 경로에 대한 설명은 좋은 site이다.

+0

thnx하지만이 시도하고 작동하지. – Mak

+0

이미지의 URL은 무엇입니까? –

+0

페이지가 하위 폴더에있는 경우 이미지 src는 "../images/pic1.png"이어야합니다. 페이지가 루트 폴더에 있으면 이미지 src는 "images/pic1.png"이어야합니다. – Mak

관련 문제