Как вы отображаете содержимое тегов, таких как имена тегов и атрибуты, в виде строк? - PullRequest
1 голос
/ 18 ноября 2010

Хорошо, я хотел использовать самонаблюдение DOM для рекурсивного анализа текущего состояния DOM и возврата его в виде одной отформатированной строки для отображения в другом месте. Для моих целей будет достаточно стандартных функций DOM или JQuery. До сих пор я пробовал такие вещи, как

var txt = $("body").tagName;
var txt = $("body").get();
var txt = $("body").nodeName;
var txt = new String($("body").tagName);

и т.д..
Каждый раз, когда я пытаюсь выполнить одно из этих действий, он либо возвращает сам объект узла, либо неопределенный. Как мне получить его, чтобы я мог получить строку, такую ​​как body или , возвращенную вместо самого объекта?
В таком случае, как я могу получить имя и значение атрибута, возвращаемого в виде строки?

Ответы [ 5 ]

3 голосов
/ 18 ноября 2010

Вам необходимо использовать get(n) для получения исходного узла DOM из объекта jQuery, если вы хотите посмотреть его свойства DOM, где n - это n-й элемент в объекте jQuery.

nodeName даст вам имя узла в верхнем регистре, а getAttribute('attributeName') или просто .attributeName можно использовать для получения значения атрибута.

// Contrived example; returns BODY
var n = document.body.nodeName;

// Get the value of an attribute from an element
var n = document.getElementById('id').title;

// Unsupported attribute's value need to be obtained through `getAttribute`
var n = document.getElementById('id').getAttribute('placeholder');

Посмотрите на эту таблицу для полного списка функций и свойств DOM: http://www.quirksmode.org/dom/w3c_core.html

1 голос
/ 18 ноября 2010

Для получения имени тега вы можете использовать: $ ("body") [0] .tagName;

Чтобы получить атрибуты элемента в объекте, вы можете использовать: $ ("body")[0] .attributes;Переберите этот объект, чтобы получить пары ключ / значение.

0 голосов
/ 23 декабря 2010

Используя jQuery, вы можете получить тег объекта следующим образом:

var txt = $("body").attr("tagName"); //returns "BODY" (uppercase)

Для любого другого атрибута введите имя атрибута:

var txt = $("div").attr("class"); //returns class of the div
var txt = $("a").attr("title"); //returns title of the anchor

Вот документация для метода .attr (): http://api.jquery.com/attr/

0 голосов
/ 18 ноября 2010

document.getElementsByTagName("div")[0].tagName для универсального.

0 голосов
/ 18 ноября 2010

var txt = $("body")[0].tagName;

Примечание : имя тега будет возвращено заглавными буквами.

...