Преобразование строки HTML в элемент DOM? [Дубликат]

На этот вопрос уже есть ответ здесь:

Создание нового элемента DOM из строки HTML с использованием встроенных методов DOM или Prototype 21 ответ

Скажи, что есть,

var some_html = '' +
    '<img name="bo_im" id="' + val.id + '" class="bookmark_image" src="' + val.favicon + '">' +
    '<a target="_blank" name="bookmark_link" class="bookmark_link" href="' +
    val.url + '" id="' + val.id + '">' + val.title + '</a>' +
    '' +
    '';

это возможно сделать

var some_element = `some_function`(some_html);

Есть ли реализация для some_function (1) без использования библиотеки и (2) с использованием библиотеки. ?

 Eldar29 мая 2013 г., 16:35
Попробуйте эту информациюhttps://developer.mozilla.org/en-US/docs/Code_snippets/HTML_to_DOM
 Brad Christie29 мая 2013 г., 16:33
var d = document.createElement('div'); d.innerHTML = some_html;

Ответы на вопрос(3)

Решение Вопроса

Создайте временный контейнер для вашего HTML, а затем получите его содержимое. Что-то вроде:

var d = document.createElement('div');
d.innerHTML = some_html;
return d.firstChild;
 user21075713 июл. 2017 г., 17:52
может ли это вызвать утечку памяти, потому что на firstchild все еще ссылается d? например, сказать, что вы делаете что-то вроде otherElement.appendChild (d.firstchild);
 svidgen29 мая 2013 г., 16:38
@ pure_code.com Затем оберните его в функцию ...
 Brad Christie29 мая 2013 г., 16:37
@ pure_code.com: меньшее количество строк кода не всегда лучший метод. Только потому, что может быть однострочное решение, неэто не значитсЛучший реализация.
 h2ooooooo29 мая 2013 г., 16:38
@ pure_code.com Здесь 'однострочник:var d = document.createElement('div'); d.innerHTML = some_html; return d.firstChild;
 Felix Kling29 мая 2013 г., 16:37
@ pure_code.com: но нетт. Вы можете поместить эти три строки в функцию, если хотите (редактировать: Вы на самом деле должны, так как последняя строкаreturn заявление). Если вы нене знаю, как определить функции:eloquentjavascript.net/chapter3.html.
 Kohjah Breese22 дек. 2014 г., 20:16
Вы спасатель жизни.
 angry kiwi06 апр. 2016 г., 19:42
лучший ответ....
 mgw85429 мая 2013 г., 16:37
Затем просто вставьте это в тело функции под названием "some_function» и называть это.

jQuery.parseHTML () - функция может вам помочь.

http://api.jquery.com/jQuery.parseHTML/

 Paul S.29 мая 2013 г., 16:44
@ DonnyDee этот ответ будет работать только для HTML, который является допустимым для XML (то есть не для всего HTML).
 DonnyDee29 мая 2013 г., 16:40
Надеюсь, этот ответ поможет вам:stackoverflow.com/a/3104237/2335272
 Brad Christie29 мая 2013 г., 16:38
jQuery.parseHTML это просто более сложная версияKolink»ответ.

Попробуйте приведенный ниже код

    var myname = 'John Doe';

//This is using Jquery
var htmltext = '<p style="color:red">'+myname+'This is a test</p>'
$('#one').html(htmltext);


//This is pure javascript
document.getElementById('two').innerHTML='<p style="color:red">'+myname+'This is a test</p>';

Ссылка JSfiddle

Я строю строку и добавляю ее к элементу html, используя функцию html (), а не text (). Это будет восприниматься браузером как тег HTML и отображать изменения в пользовательском интерфейсе, как показано на скрипке.

 Jeff Noel18 июн. 2013 г., 20:28
Дон»не забудьте добавить объяснение в ваш код для тех, кто может быть не знаком сjQuery или же .JavaScript
 BossWalrus28 мар. 2015 г., 23:18
Этот код JQUERY идеален. Спасибо!

Ваш ответ на вопрос