Как заменить getElementsByTagName() на document.getElementsById()

У меня есть этот код, и я хочу получить ссылку на изображение, сохраненное на веб-сайте по его идентификатору, но этот код использует getElementsByTagName(''):

<?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>

Я хочу заменить getElementsByTagName('img') с document.getElementsByById(img_1_id)

поэтому скрипт получает URL выбранного изображения с идентификатором: img_1_id

Если есть другой способ / код для этого, пожалуйста, напишите:)

Спасибо за плюсы!

3 ответа

getElementById возвращает один элемент, вам не нужен цикл.

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

КСТАТИ, img элементы не имеют href атрибут, они имеют src, У них также нет ничего в их nodeValue, поскольку <img> не является элементом контейнера.

Вы должны поставить

document.getElementsByById("img_1_id");

Итак, вы получаете элемент с id = "img_1_id"

Как насчет этого?

<?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>';
}
?>
Другие вопросы по тегам