2016-08-12 1 views
-1

document.getElementsById()에 의해 getElementsByTagName()를 대체하는 방법 :이 코드를 가지고 있고이 ID로 웹 사이트에 저장된 이미지의 링크하지만이 코드를 사용 <code>getElementsByTagName('')</code> 싶어

<?php 
$html = file_get_contents('http://example.com/dir/webpage.html'); 

$dom = new DOMDocument; 

@$dom->loadHTML($html); 


$links = $dom->getElementsByTagName('img'); 


foreach ($links as $link){ 

     echo $link->nodeValue; 
    echo $link->getAttribute('href'), '<br>'; 
} 
?> 

을 그리고 HTML은 다음과 같습니다

<a href="/images/image1.png" id="img_1_id"> 
          <div class="download"></div> 
         </a> 

내가 이렇게 스크립트가 ID로 선택한 이미지의 URL을 얻을 document.getElementsByById(img_1_id)

getElementsByTagName('img')를 교체하려면 :또 다른 방법/코드가 수행하는 경우

이 그것을 게시하시기 바랍니다 :)

당신에게 프로 감사합니다! 당신이 img_1_id "

+0

그리고 무엇이 문제입니까? –

+0

'getElementsById'와 같은 함수는 없습니다. ID는 고유해야하므로 함수는'getElementById' ('s'가 아님)입니다. 요소 목록이 아닌 단일 요소를 반환하므로 루프가 필요하지 않습니다. – Barmar

+0

@u_mulder 문제는 ID로 링크를 가져오고 싶습니다. –

답변

0

?

<?php 
$html = file_get_contents('http://example.com/dir/webpage.html'); 

$dom = new DOMDocument; 

@$dom->loadHTML($html); 


$links = $dom->getElementById('img_1_id'); 


foreach ($links as $link){ 

     echo $link->nodeValue; 
    echo $link->getAttribute('href'), '<br>'; 
} 
?> 
+0

이 방법은 작동하지 않습니다 :/ –

+0

이 답변은 PHP가 아니라 자바 스크립트입니다. – Barmar

+0

예! 미안하지만 나는 PHP가 JS가 아니라는 것을 보지 못했다. :( 그러나 문서에, PHP에서 너무 ''plic 넣어해야합니다. 이 http://php.net/manual/pt_BR/domdocument.getelementbyid.php –

0

무엇 이것에 대해"당신이 식을 가진 요소를 얻을 소우

document.getElementsByById("img_1_id"); 

"를 넣어 가지고

+0

'getElementById' 단일 요소를 반환합니다. –

+0

@ 톰 방법 작동하지 않습니다 :/ –

1

getElementById은 하나의 요소를 반환하면 루프가 필요 없습니다.

$link = $dom->getElemebtById('img_1_id'); 
echo $link->nodeValue; 
echo $link->getAttribute('href'); 

BTW, img 요소에는 href 특성이 없으며 src입니다. <img>은 (는) 컨테이너 요소가 아니므로 nodeValue에는 아무 것도 없습니다.

+0

(img) 태그에있을 수 있으므로 링크를 클릭하면 이미지와 태그에 ID가있을 수 있습니다. –

+0

내 케이스는 div의 링크를 얻는 것입니다. ID –

+0

'img_1_id'는 이미지 또는 이미지를 포함하는 링크의 ID입니까? – Barmar

관련 문제