我有以下
<body class="test test1 test2" style="color:red; font-size:12px">...</body>
使用jQuery,我如何在变量x中存储body标签的所有属性。所以换句话说我想要
var x = 'class="test test1 test2" style="color:red; font-size:12px"';
答案 0 :(得分:4)
您可以使用element.attributes
类似的东西:
var body = document.body,
attries = body.attributes,
arr = [];
for(var i=0, len=attries.length; i<len; i++){
var attr = attries[i];
arr.push(attr.nodeName + '="' + attr.nodeValue + '"');
}
var x = arr.join(" ");
alert(x);
请在此处查看:http://jsbin.com/ihiwod
更新:
但是,在IE(&lt; = 7)中,上面的代码会生成比您想要的更多的属性,因为未设置的属性也会添加到这些浏览器中的element.attributes
。
改进的代码是:
var body = document.body,
attries = body.attributes,
arr = [];
for(var i=0, len=attries.length; i<len; i++){
var attr = attries[i];
if(attr.specified){
var attr_name = attr.nodeName,
attr_val = attr_name === "style" ? body.style.cssText
: attr.nodeValue;
arr.push(attr_name + '="' + attr_val + '"');
}
}
var x = arr.join(" ");
alert(x);
答案 1 :(得分:3)
var attrs = document.body.attributes;
var attributes = [];
for(var i=0; i<attrs.length; i++) {
attributes.push(attrs[i].nodeName + '="' + attrs[i].nodeValue + '"');
}
var x = attributes.join(" ")
答案 2 :(得分:0)
据我所知,jQuery本身无法做到这一点,但有一个插件可供使用:http://plugins.jquery.com/project/getAttributes。你可能想检查一下。