Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2017, 08:23
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Получить картинку из HTML
Всем привет.
есть HTML пример:
<div class="new">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the
<img src="test.jpeg" width="45"/>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
<img src="image2.jpeg" width="300" height="300" />
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
<img src="image3.jpeg" width="50" height="50" />
</div>

как можно с этой страницы получить только первую картинку?
(ну и вообще как вытащить только изображение <img >)
учитывая что картинка не имеет например id и класса.
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2017, 08:25
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var image = document.querySelector('.new img');
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2017, 12:23
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Сообщение от Ruslan_xDD Посмотреть сообщение
var image = document.querySelector('.new img');
спасибо.
а если это приходит через json и нужно вытащить оттуда
success: function(data) { 
        
    $.each(data, function(key, val) { 
        
    var intro = val.introtext;


в intro есть текст с картинками
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2017, 13:17
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var tempDiv = document.createElement('div');
tempDiv.innerHTML = intro;

var image = tempDiv.querySelector('img');

Последний раз редактировалось ruslan_mart, 22.05.2017 в 13:36.
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2017, 13:35
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Сообщение от Ruslan_xDD Посмотреть сообщение
var tempDiv = document.createElement('div');
tempDiv.innerHTML = intro;

var image = intro.querySelector('img');
ошибка:
intro.querySelector is not a function

может как то search можно использовать?
например вот так
var image = val.introtext.search("img");

находит элементы. но вывести пока не получается.
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2017, 13:36
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Зосимов, опечатался, исправил, смотрите пост ещё раз.
Ответить с цитированием
  #7 (permalink)  
Старый 22.05.2017, 13:40
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Если текстом получить нужно, то можно так:

var image = intro.match(/<img.*?\/?>/i);
image = image && image[0];

alert( image );
Ответить с цитированием
  #8 (permalink)  
Старый 22.05.2017, 13:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Наиболее правильный вариант:

var image = (new DOMParser).parseFromString(intro, 'text/html').querySelector('img');


Ответить с цитированием
  #9 (permalink)  
Старый 22.05.2017, 14:19
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Сообщение от Ruslan_xDD Посмотреть сообщение
Если текстом получить нужно, то можно так:

var image = intro.match(/<img.*?\/?>/i);
image = image && image[0];

alert( image );
спасибо. именно текстом получить нужно было. что бы вывести полученную картинку на страницу.

а можно ей класс присвоить уже после выбора?
Ответить с цитированием
  #10 (permalink)  
Старый 22.05.2017, 14:22
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var image = (new DOMParser).parseFromString(intro, 'text/html').querySelector('img');

image.classList.add('myClass');

myWrapper.appendChild(image);



Текстом:

var image = (new DOMParser).parseFromString(intro, 'text/html').querySelector('img');

image.classList.add('myClass');

alert( image.outerHTML );
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Получить html код iframe leny Элементы интерфейса 6 17.12.2011 22:42
Как получить все атрибуты html елемента imsha Events/DOM/Window 1 07.12.2011 12:42
Получить размеры рабочей области окна в Chrome unclechu Events/DOM/Window 1 13.09.2011 02:37
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42