2016-08-30 69 views
1

如何将标签的属性添加到变量中,以便我可以将它们插入其他位置?jQuery,获取标签属性并将它们分配给变量

所以输入标签应该指定一个变量:

tags = { 'type' : 'submit' , 'id' : 'submit' }; 

我知道你可以添加使用.attr()属性,但像

testMe = $("#submit").attr(); 

不工作。

+0

删除'testMe ='并把一些东西放在'attr()' – depperm

+0

看看这里:http://stackoverflow.com/a/14645827/3611180 – pumpkinzzz

+0

我想将所有已分配给输入的属性添加到变量。所以我试图获取属性并将它们放入一个变量中,而不是试图将属性添加到标记中。 –

回答

1

你可以通过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"/>

0

您可以使用节点的属性映射到对象:

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()来访问单个节点的属性。

相关问题