2011-08-04 10 views
1

안녕하세요 메신저 자바 스크립트에 새로운 기본적으로 운동하려고합니다. 링크를 클릭하면 장소 소유자의 이미지가 표시됩니다. 1.jpg, 2.jpg 또는 3.jpg에서 placeholder1을 사용하는 경우 placeholder1을 해당 이미지와 함께두고 자리 표시 자 2를 사용합니다. 의미를간단한 자바 스크립트 도움말

<script type="text/javascript" language="javascript"> 
function showPic (whichpic) { 
    if (document.getElementById) { 
     document.getElementById('placeholder1').src = whichpic.href 
     if (whichpic.title) { 
      document.getElementById('desc').childNodes[0].nodeValue = whichpic.title; 
     } else { 
      document.getElementById('desc').childNodes[0].nodeValue = whichpic.childNodes[0].nodeValue; 
     } 
     return false; 
    } else { 
     return true; 
    } 
} 
</script> 

<div style="border: 1px solid #999; padding: 1em; margin: 0 0 15px 0;"> 
<ul> 
<li><a onclick="return showPic(this)" href="/images/1.jpg" title="A bunch of bananas on a table">some bananas</a></li> 
<li><a onclick="return showPic(this)" href="/images/2.jpg" title="Condiments in a Chinese restaurant">two bottles</a></li> 
<li><a onclick="return showPic(this)" href="/images/3.jpg" title="Seashells on a table">some shells</a></li> 
</ul> 

<p id="desc">Choose an image to begin</p> 
<img id="placeholder1" src="/images/blank.gif" alt="" /> 
<img id="placeholder2" src="/images/blank.gif" alt="" /> 
</div> 
+1

질문을 명확히하십시오. –

+0

내 질문이 수정 – Lee

답변

0

당신이과 같이 jQuery를 사용하여 요소의 속성의 값이 무엇인지 찾는 방법을 묻는 경우 어떤 도움 감사합니다 희망 ....

var src = $('#placeholder1').attr('src'); 

그런 다음 src 속성이 관심있는 파일 이름을 contrains 있는지 확인의 인덱스, 또는 다른 문자열 기능을 사용할 수 있습니다.

+0

예 ....'document.getElementById ('placeholde1') 대신'$ ('# placeholder1'). attr ('src')'에 대해서만 50kB 라이브러리를 포함합니다. src' –

+1

그리고 모든 그것이 제공하는 다른 이점,하지만 당신이 당신의 의견/환경 설정을받을 자격이있어 어쩌면 리는 jQuery에 대해 몰라, 그래서 나는 그의 삶을 더 쉽게 만들 수있는 뭔가 그를 소개했습니다 : D –

+0

감사합니다 Anthony i ' jQuery에 대해 조금 읽었을뿐입니다 :/3 개의 대답을 모두 시도해 보았고 어느 것이 먼저 작동하는지 알 수 있습니다 :) – Lee

0

를 나는 내가 "의 getAttribute"에 대해 충분히 모른다 인정해야 그것을 크로스 브라우징하는 방법 R 호환성 ...

function showPic (whichpic) { 
    if (document.getElementById) { 
     if(document.getElementById('placeholder1').getAttribute("src") == "/images/blank.gif") { 
      document.getElementById('placeholder1').src = whichpic.href; 
     } else { 
      document.getElementById('placeholder2').src = whichpic.href; 
     } 
     if (whichpic.title) { 
      document.getElementById('desc').childNodes[0].nodeValue = whichpic.title; 
     } else { 
      document.getElementById('desc').childNodes[0].nodeValue = whichpic.childNodes[0].nodeValue; 
     } 
     return false; 
    } else { 
     return true; 
    } 
} 

편집 : '의 getAttribute ("SRC")'

+0

고마워, 이건 내가 원하는 것처럼 보이지만 어떤 이유로 든 다른 이미지가 보이기 위해 클릭하면 자리 표시 자 2로 가지 않을 것입니다. – Lee

+0

.src 특성을 읽는 것이 파일의 전체 경로를 반환한다는 사실을 간과 한 것처럼 보입니다. 그래서 "/path/to/image.jpg"보다는 "http : //www.foo.com/path/to/image.jpg". 이 문제를 해결하려면 .src 대신 .getAttribute ("src")를 사용하십시오. 이것을 포함하도록 위에 편집되었습니다. –

0

저장하는 변수에 PLACEHOLDER1에 대한 참조를 '하려면 .src을'전환. placeholder1의 src를 확인하여 언급 한 이미지인지 확인하십시오 (예를 들어, 정규 표현식을 사용하여이를 수행합니다). 그것은 그 이미지의 경우는 PLACEHOLDER2에 대한 참조로 변수를 재 할당 :

function showPic (whichpic) { 
    var ph = document.getElementById('placeholder1'); 
    if (/[1-3]\.jpg/.test(ph.src)) { 
     ph = document.getElementById('placeholder2'); 
    } 
    ph.src = whichpic.href; 
    var descChild = document.getElementById('desc').childNodes[0]; 
    descChild.nodeValue = whichpic.title || whichpic.childNodes[0].nodeValue; 
} 

주, 당신은 document.getElementById의 존재 여부를 테스트 할 필요가 없습니다. 브라우저가 JavaScript를 지원하면 document.getElementById을 지원합니다.

관련 문제