如何将标记名称和属性等标记的内容显示为字符串?

时间:2010-11-18 17:22:03

标签: jquery dom jquery-selectors introspection tagname

好的,我想要做的是使用DOM内省来递归地分析DOM的当前状态,并将其作为单个格式化字符串返回,以便在其他地方显示。 无论是标准DOM函数还是JQuery都足以满足我的需求。 到目前为止,我已经尝试过像

这样的事情
var txt = $("body").tagName;
var txt = $("body").get();
var txt = $("body").nodeName;
var txt = new String($("body").tagName);

等。
每当我尝试其中一个时,它将返回节点对象本身,或者未定义。 我如何得到它,以便我可以得到一个字符串,如body或<身体>返回而不是对象本身?
就此而言,我如何获得以字符串形式返回的属性的名称和值?

5 个答案:

答案 0 :(得分:3)

如果要查看它的DOM属性,需要使用get(n)从jQuery对象获取原始DOM节点,其中n是jQuery对象中的第n个元素。

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 :(得分:1)

要获取标签名称,您可以使用:$(“body”)[0] .tagName;

要获取对象中元素的属性,可以使用:$(“body”)[0] .attributes;遍历该对象以获取键/值对。

答案 2 :(得分:0)

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

注意:它会以大写字母返回tagName。

答案 3 :(得分:0)

document.getElementsByTagName("div")[0].tagName表示通用。

答案 4 :(得分:0)

使用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/