0

次のような一連の html タグがあるとします。

<div id="slide1" class="slide"></div>
<div id="slide2" class="slide"></div>
<div id="slide3" class="slide"></div>

各タグkey='post'の配列のように、div タグに追加の属性を追加しようとしています。[post, get, search]JavaScriptを使用してそれを行うことは可能ですか??

また、入力が配列ではなくハッシュの場合はどうなるか知りたいです

 {"post" : ["0","1"], "get": ["0","2"], "search": ["2","1"]} 
4

3 に答える 3

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を使用している場合(そしてこれらの3つの要素のみがslideクラスを持っていると仮定している場合):

var attrs = ['post', 'get', 'search'];
$('.slide').attr('key', function(i) {
    return attrs[i];
});

オブジェクトには順序が定義されていないため、質問の更新された部分(配列の代わりにオブジェクト「ハッシュ」を使用)は機能しません。ラベルを取得することはできますが、決定論的な順序で表示されることはありません。

var myobj = {"post" : ["0","1"], "get": ["0","2"], "search": ["2","1"]};
var attrs = Object.keys(myobj);
... // as above

古いブラウザ用のシムを含む、のドキュメントについてObject.keysは、MDNサイトを参照してください。

于 2012-08-29T14:35:11.450 に答える
1

はい、可能です。次のように element.setAttribute() を使用してください。

var element = document.getElementById("slide1");
element.setAttribute('key','post');
于 2012-08-29T14:32:21.403 に答える
0

Set Attribute はあなたが探しているものです:

https://developer.mozilla.org/en-US/docs/DOM/element.setAttribute

var d = document.getElementById("slide1"); 
d.setAttribute("key", "post");
于 2012-08-29T14:34:19.810 に答える