jQuery,获取标签属性并将它们分配给变量
问题描述:
如何将标签的属性添加到变量中,以便我可以将它们插入其他位置?jQuery,获取标签属性并将它们分配给变量
所以输入标签应该指定一个变量:
tags = { 'type' : 'submit' , 'id' : 'submit' };
我知道你可以添加使用.attr()
属性,但像
testMe = $("#submit").attr();
不工作。
答
你可以通过element.attributes
如循环得到的所有属性:
$.each(document.getElementById("submit").attributes, function() {
tags[this.name] = this.value;
});
希望这有助于。
var tags = {};
$.each(document.getElementById("submit").attributes, function() {
tags[this.name] = this.value;
});
console.log(tags);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" value="Submit" id="submit"/>
答
您可以使用节点的属性映射到对象:
var obj = {};
Array.from(node.attributes).forEach(function (attr) {
obj[attr.name] = attr.value;
});
在jQuery中,您可以通过.map()
进行映射:
$(..selector..).map(function() {
var obj = {};
$.each(this.attributes, function() {
obj[this.name] = this.value;
});
return obj;
});
什么你最终会得到一个objec的集合ts包含每个节点的属性。
然后,您可以使用.get()
来访问单个节点的属性。
删除'testMe ='并把一些东西放在'attr()' – depperm
看看这里:http://stackoverflow.com/a/14645827/3611180 – pumpkinzzz
我想将所有已分配给输入的属性添加到变量。所以我试图获取属性并将它们放入一个变量中,而不是试图将属性添加到标记中。 –