Вы можно использовать DOMParser
, например так:
var xmlString = " Link < / div> "; var doc = new DOMParser (). parseFromString (xmlString, «текст / xml»); console.log (doc.firstChild.innerHTML); // => Ссылка ... console.log (doc.firstChild.firstChild.innerHTML); // => Ссылка
Обычно вы создаете временный родительский элемент, в который записываете innerHTML
, а затем извлекаете содержимое:
var wrapper= document.createElement('div');
wrapper.innerHTML= '<div><a href="#"></a><span></span></div>';
var div= wrapper.firstChild;
Если элемент, чей внешний HTML у вас есть, представляет собой простой Но IE не может писать Хорошо, я сам понял ответ, после того как мне пришлось подумать над ответами других людей. :P Просто присвойте Теперь вы можете сделать так: Или с помощью jQuery: Ознакомьтесь с парсером чистого JavaScript HTML Джона Ресига. РЕДАКТИРОВАТЬ: если вы хотите, чтобы браузер анализировал HTML за вас, , то родительская обертка должна быть
.
innerHTML
для элементов типа , поэтому если у вас есть , вам придется обернуть всю строку HTML в
, записать that в ... innerHTML
и извлечь нужный вам на пару уровней ниже.
var htmlContent = ... // a response via AJAX containing HTML
var e = document.createElement('div');
e.setAttribute('style', 'display: none;');
e.innerHTML = htmlContent;
document.body.appendChild(e);
var htmlConvertedIntoDom = e.lastChild.childNodes; // the HTML converted into a DOM element :), now let's remove the
document.body.removeChild(e);
id
элементу и обработайте его нормально, например:<div id="dv">
<a href="#"></a>
<span></span>
</div>
var div = document.getElementById('dv');
div.appendChild(......);
$('#dv').get(0).appendChild(........);
innerHTML
- это именно то, что вам нужно. Из этот вопрос SO : var tempDiv = document.createElement('div');
tempDiv.innerHTML = htmlString;
Похожие вопросы: