2010-07-28 6 views
0

Google 이미지 검색 API를 사용하고 있으며이 코드를 주로 복사하여 내 페이지에 검색 결과를 만듭니다.javascript를 사용하여 img의 제목과 alt 속성을 설정할 수 없습니다.

다음 행에서
for (var i = 0; i < results.length; i++) { 
    // For each result write it's title and image to the screen 
    var result = results[i]; 
    var linkContainer = document.createElement('div'); 

    var title = document.createElement('div'); 
    // We use titleNoFormatting so that no HTML tags are left in the title 
    title.innerHTML = result.titleNoFormatting; 

    var newImg = document.createElement('img'); 

    newImg.src = result.tbUrl; 
    newImg.className = 'googleSearchResult'; 
    newImg.title = 'newTitle'; 
    newImg.alt = 'newAlt'; 

    var newLink = document.createElement('a'); 
    newLink.href = "temp_url";    

    newLink.appendChild(newImg); 
    contentDiv.appendChild(newLink); 
} 

,

newImg.src = result.tbUrl; 
newImg.className = 'googleSearchResult'; 
newImg.title = 'newTitle'; 
newImg.alt = 'newAlt'; 

화상 SRC 및 클래스 세트 잘 작동 처음 두하지만 이미지의 제목 및 ALT 설정해야 번째 두, 전혀 작동하지 않습니다. 왜 이런 일이 일어날 지 알 수 있습니까? 읽어 주셔서 감사합니다. 편집

: 여기 은 방화범을 통해 파이어 폭스에서 점검을 HTML입니다 : 구글 크롬에서 검사 할 때 여기

<img alt="" src="http://images.google.com/images?q=tbn:_HZix2CrLSLSOM::bestonlinetvseries.com/deadwood/deadwood_s01.jpg" class="googleSearchResult"> 

는 HTML입니다

<img alt src="http://images.google.com/images?q=tbn:_HZix2CrLSLSOM::bestonlinetvseries.com/deadwood/deadwood_s01.jpg" class="googleSearchResult"> 

편집 : 내가 뭘하려고 여기에 이미지 용 HTML에 여분의 데이터를 저장하여 나중에 jQuery 플러그인에서 사용한다. 누구든지이 작업을 수행 할 수있는 대안을 제시 할 수 있다면 좋을 것입니다.

+0

도움이되지 않았으므로 답을 삭제했습니다. 실제로 그것은 DOM 이미지 요소가 실제로 'alt'속성을 갖기 때문에 완전히 정확하지 않았습니다. 그 죄송합니다. –

+0

고마워, Felix – ben

+3

HTML 문서에서'getAttribute' /'setAttribute'를 절대로 사용하지 마십시오. 일반 속성 액세스 방법보다 읽기 쉽지 않으며 많은 속성이 IE에서 버그가 있습니다. – bobince

답변

1

마지막 편집에 대한 응답으로 : 나중에 사용하기 위해 이미지와 관련된 데이터를 저장하려는 경우 jQuery의 data 메소드를 사용할 수 있습니다.

3

문제가 다른 곳에 있다고 생각됩니다. 제가 테스트 한 브라우저 (파이어 폭스, 크롬, IE)에서 잘 작동하는 this example을 고려

var link = document.createElement("a"); 
link.href = "http://stackoverflow.com"; 

var img = document.createElement("img"); 
img.title="Hello"; 
img.alt="alt Hello"; 
img.src="http://jsfiddle.net/img/sprites.png"; 
link.appendChild(img); 
document.body.appendChild(link); 

alert(img.getAttribute("alt")); 
alert(img.getAttribute("title")); 

이처럼 나는 아무것도 링크/IMG 요소의 전면에있을 수 있는지 확인하는 것이 좋습니다 마우스를 올리면 도구 설명이 표시되지 않습니다.

+0

답변 해 주셔서 감사합니다. 나는 정말로 내가 잘못하고있는 것을 해결할 수 없다. Firebug에서 요소를 검사하고 있는데 alt = ""라고 말하고 제목에 대한 언급이 전혀 없습니다. – ben

+0

@ben : 다른 브라우저에서도 마찬가지입니까? Chrome에는 검사기 (Ctrl + Shift + I)가 있으며 IE에는 개발자 도구 (F12)가 있습니다. –

+0

Google 크롬 관리자의 출력을 표시하도록 원래 질문을 수정했습니다. – ben

1

시도 :

img.setAttribute('title', 'someTitle'); 

Appearantly, DOM 스크립팅에서 '속성'과 '속성'사이에 차이가 있습니다.

관련 문제