jQuery — получение первого изображения из обработанного XML-канала (содержимое: закодировано)

#jquery #xml-parsing

#jquery #xml-синтаксический анализ

Вопрос:

Я могу выполнять поиск в XML-канале со следующим кодом

 $($xml).find('item').each(function(i, e) { ... }
  

Для каждого элемента в этом цикле я могу получить доступ к своему элементу content:encoded со следующими строками и посмотреть результаты…

     $mcontent = $(this).find('encoded').text();
    console.log('source: '   $mcontent.match(/<img[^>]*>/g));
  

… который содержит несколько изображений, разделенных запятыми, как это…

 <p><img src="...">, <img src="...">, <img src="..."></p>
  

Как я могу получить только первый элемент изображения и сохранить его в переменной $mImage?

Спасибо!

Обновить:

Когда я пытаюсь сделать следующее…

     $mcontent = $(this).find('encoded').text();
    $mcontent = $mcontent.match(/<img[^>]*>/g).split(',')[0];
    console.log('source: '   $mcontent);
  

Браузер сообщает мне об этом…

 Uncaught TypeError: $mcontent.match(...).split is not a function
  

.. и я не знаю почему…

Комментарии:

1. «your-image, string, here».split(‘,’)[0] даст вам первое изображение в виде строки.

2. У меня есть еще один вопрос выше, пытаясь реализовать это… Я также забыл элемент из моей первоначальной проблемы…

3. Спасибо axel за напоминание о разделении

Ответ №1:

Если ваш текст:

 <p><img src="...">, <img src="...">, <img src="..."></p>
  

вы можете использовать:

 var str = '<p><img src="...">, <img src="...">, <img src="..."></p>';
var firstImg = $($.parseHTML(str)[0]).find('img:first');
  

Неперехваченная ошибка типа: $mcontent.match(…).split не является функцией

Это происходит потому, что «$mcontent.match(/]> / g)» * возвращает массив img, и этого достаточно, чтобы вы получили первый элемент:

Фрагмент:

 var str = '<p><img src="...">, <img src="...">, <img src="..."></p>';
var firstImg = $($.parseHTML(str)[0]).find('img:first');

console.log(firstImg[0].outerHTML);



var t = str.match(/<img[^>]*>/g)[0];

console.log(t);  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>