Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Из строки в обьект (https://javascript.ru/forum/dom-window/49851-iz-stroki-v-obekt.html)

vvkk 31.08.2014 15:35

Из строки в обьект
 
Есть переменная в которой храниться тег например

var sd="<p id='ll' class='ss'>2222222</p>";

Можно ли как то получить значения id,class, и содержимое не прибегая к распарсиванию строки а к примеру сделать обект и обратиться как к свойсву или аттрибуту?

Octane 31.08.2014 15:58

var sd="<p id='ll' class='ss'>2222222</p>",
    node = document.createElement('div');
node.innerHTML = sd;
node = node.firstChild;
alert(node.id);
alert(node.className)

vvkk 31.08.2014 16:00

Это костыли, нужно изящнее решение.

vvkk 31.08.2014 16:17

var sd="<p id='ll' class='ss'>2222222</p>";

var psd=new Object(sd);

alert(psd.id);

Так не выводит. Каким образом броузер вообще делает инициализацию из тега обьект? Можно как то это эмулировать при помощи JS ?

Да если поместить тег в "полотно" HTML документа создастся обьект, как по другому эмулировать можно такое?

Aetae 01.09.2014 01:48

Элемент DOM - это не просто объект. Запись "<p id='ll' class='ss'>2222222</p>" ни коем боком к объектам не относится.

Если не устраивает простой и кроссбраузерный вариант и хочется использовать именно предназначенные для этого функции, то:
var sd = "<p id='ll' class='ss'>2222222</p>";
var el = new DOMParser().parseFromString(sd, "text/html").body.firstChild;
alert(el.id);
alert(el.className)

ixth 01.09.2014 01:50

Фигасе костыли! Это единственное верное решение. Хочешь обращаться к свойствам DOM — используй DOM. Что тебя смущает?

kostyanet 02.09.2014 11:50

Цитата:

Сообщение от vvkk
Это костыли, нужно изящнее решение.

Типа дефчонки заглянут в коды, а там ужос - html преобразуется в объект средствами браузера, позорище, засмеют!

Даже с этой, с location запростяк так делают, когда надо из какого-нить урла или src получить все запчасти адреса.


Часовой пояс GMT +3, время: 08:32.