假设我们有一组html标签,如
<div id="slide1" class="slide"></div>
<div id="slide2" class="slide"></div>
<div id="slide3" class="slide"></div>
我正在尝试为每个标记分别为数组key='post'
中的[post, get, search]
添加额外属性。
是否可以使用javascript ??
我还想知道如果输入是哈希而不是像
那样的数组 {"post" : ["0","1"], "get": ["0","2"], "search": ["2","1"]}
答案 0 :(得分:1)
是的,可以这样使用element.setAttribute():
var element = document.getElementById("slide1");
element.setAttribute('key','post');
答案 1 :(得分:1)
var attrs = ['post', 'get', 'search'];
for (var i = 0, n = attrs.length; i < n; ++i) {
var el = document.getElementById('slide' + (i + 1));
el.setAttribute('key', attrs[i]);
}
或者,如果您正在使用jQuery(并假设只有这三个元素具有slide
类):
var attrs = ['post', 'get', 'search'];
$('.slide').attr('key', function(i) {
return attrs[i];
});
问题的更新部分(使用对象“hash”而不是数组)不起作用,因为对象没有定义的排序。您可以获取标签,但它们不会以确定的顺序出现:。
var myobj = {"post" : ["0","1"], "get": ["0","2"], "search": ["2","1"]};
var attrs = Object.keys(myobj);
... // as above
请参阅MDN网站documentation for Object.keys
,包括旧版浏览器的垫片。
答案 2 :(得分:0)
您正在寻找Set Attribute:
https://developer.mozilla.org/en-US/docs/DOM/element.setAttribute
var d = document.getElementById("slide1");
d.setAttribute("key", "post");