Понятия не имею, что я делаю неправильно, но у меня есть строка JSON с этим:
jsonp443489({"content":"<!DOCTYPE html><html><head><title>Title</title></head><body><p>Hello World</p></body></html>"});
Мне нужно проанализировать это, чтобы иметь возможность изменять содержимое. Как, например, id хочет получить содержимое <p>
.
Теперь, в jQuery, если я сделаю:
console.log($(json.content).html());
Возвращает Title
.
Если я это сделаю:
console.log($('p',json.content));
Возвращает []
или пустой массив.
Наконец, если я просто сделаю:
console.log ($ (json.content));
Возвращает [<title>Title</title>,<p>Hello World</p>]
Что хорошо, но тогда я не могу сделать .find()
или что-нибудь еще. Поскольку я не знаю, каким будет HTML, я не могу использовать $(json.content)[1]
.
Есть идеи?
== UPDATE ==
После взлома этого в течение пары часов я решил попробовать XML. Мой пример XML был:
<?xml version=\"1.0\" encoding=\"UTF-8\"?><doc><item>One</item><item>Two</item></doc>
Это доставляло мне то же самое горе, затем оно меня ударило, это объект JS, а не строка, и jQuery ожидает строку. Я пошел и сделал
$(JSON.stringify(json.content)).find('item')
И вуаля! Я получил массив из двух предметов. Я был очень взволнован, но потом, когда я снова попробовал его с HTML (используя приведенный выше фрагмент HTML-кода возврата JSONP):
console.log($(JSON.stringify(json.content)).find('p'));
Я все еще получаю пустой массив. Это сводит меня с ума ... Есть еще идеи?