Как выводить объект через Id на js?

283
10 декабря 2016, 10:40

Допустим мы пользуемся 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 в отдельную переменную?

Answer 1

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>

Answer 2

Из 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>

READ ALSO
HTML в ListView

HTML в ListView

Доброго времени сутокИмеется html-текст, выводимый в ListView

334
psd в wordpress

psd в wordpress

Я верстаю обычные страницыНо есть много заказов типа "psd to wordpress", чем отличается верстка под вордпресс от обычной? Что нужно дополнительно...

289
Как подобрать селектор с атрибутом в котором содержится переменная?

Как подобрать селектор с атрибутом в котором содержится переменная?

Подскажите как подобрать селектор с атрибутом, в котором содержится переменная? Например, есть поле input с атрибутом nameЗначение поля name value:...

313
Отобразить на странице элементы в цикле

Отобразить на странице элементы в цикле

Всем привет, на работе нужно сделать простое задание - вывести таблицу, в итоге в контролере написал функцию, которая запросит файлик с локального...

308