Допустим мы пользуемся JSON API Tumblr ну или любой какой то летны. И когда получаем значение photo-caption через jquery то содержания записей получаем в таком формате:
<p id="name">Test</p><p id="date">01.01.2021</p><p id="about">Bla Bla Bla</p>
И дальше по Json идет еще один пост с таким же результатом:
<p id="name">Test 2</p><p id="date">02.01.2021</p><p id="about">Bla Bla Bla</p>
Так вот как нам получать значения name в отдельную переменную?
var s = '<p id="name">Test</p><p id="date">01.01.2021</p><p id="about">Bla Bla Bla</p>';
var $wrapper = $('<div>').html(s);
console.log($wrapper.find('#date').text());
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Можно обойтись без дополнительного элемента, но тогда придётся по-разному искать вложенные и элементы и элементы верхнего уровня:
var s = '<p id="name">Test</p><p id="date">01.01.2021</p><p id="about">Bla <span id="s">Bla</span> Bla</p>';
var $els = $(s);
console.log($els.filter('#date').text());
console.log($els.find('#s').text());
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Из json'а у нас строка, так создадим элемент по ней, а дальше доберёмся селектором до нужного значения по атрибуту
e = document.createElement('p');
e.innerHTML = '<p id="name">Test</p><p id="date">01.01.2021</p><p id="about">Bla Bla Bla</p>';
name = e.querySelector('#name').innerText;
date = e.querySelector('#date').innerText;
about = e.querySelector('#about').innerText;
console.log(name, date, about);
json = $('<p>').html(
'<p id="name">Test</p><p id="date">01.01.2021</p><p id="about">Bla Bla Bla</p>' +
'<p id="name">Test 2</p><p id="date">02.01.2021</p><p id="about">Bla Bla Bla</p>'
);
name1 = json.find('#name').eq(0).text();
name2 = json.find('#name').eq(1).text();
console.log(name1);
console.log(name2);
<script src='https://code.jquery.com/jquery-3.1.0.min.js'></script>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости