2012-03-17 7 views
0

同じrelで要素のセットから配列を作成するにはどうすればよいですか?Javascript/jquery同じrelの要素から配列を作成しますか?

例:

<a rel='array' id='2' url='aa'></a> 
<a rel='array' id='5' url='bb'></a> 
<a rel='array' id='8' url='cc'></a> 

アレイ:

[2] > aa 
[5] > bb 
[8] > cc 

私はちょうど何かを使用する値として、各URLを置きます。しかしIDを注文することで十分であるはずです。

どうすればいいですか?

+0

jQueryなどを使用していますか? – Niko

答えて

1
var anchors = document.getElementsByTagName('a'), i = 0, arr = [], current; 

for(i; i < anchors.length; i++){ 
    current = anchors[i]; 

    if(current.getAttribute('rel') == 'array') { 
     // arr.push(current.getAttribute('url')); 
     arr.push({ 'id' : current.id, 'url' : current.getAttribute('url') }); 
    } 
} 

http://jsfiddle.net/8ScSH/

1

足りませんjqueryの!

var arr = []; 
$('a[rel="array"]').each(function(){ 
    arr.push($(this).attr('url')); 
}); 
0

非常に簡単あなたはjqueryのを使用している場合:

var arr = []; 
$('a[rel="array"]').each(function() { 
    arr.push($(this).attr('url')); 
}); 


Fiddle

0
var itemArray = []; 
$("a[rel='array']").each(function() { itemArray.push($(this).attr("url") }); 
0

は試してみてください

var a = {}; 

$('#wrap a').each(function() { 
    if($(this).attr('rel') === "array") { 
     a[$(this).attr('id')] = $(this).attr('url'); 
    } 
});​​ 

配列は切断しません。オブジェクトが必要です。ここに住ん:http://jsfiddle.net/martincanaval/rAPkL/

+0

Jqueryを使用せずに同じ考えが適用されます:http://jsfiddle.net/martincanaval/3GAYN/1/ –

0
var elements = []; 
$('a[rel="array"]').each(function() { 
    elements[this.id] = $(this).attr('url'); 
}); 

注これは私にはあまり意味がありません要素のidで指定された唯一のインデックス値とのまばらな配列を作成し、それはあなたが尋ねたものだという。 IDのいずれかが非数値することができればは本当に意味がありません - あなたがオブジェクトではなく、配列を使用する必要がある場合、すなわち:

var elements = {}; 

「私はちょうど値として、各URLを入れてIDを持っていれば十分だろう」

あなたの意図は、あなたがこれを行うことができますIDの配列を取得する場合:

IDは、彼らがあなたの元のHTML内に表示される順序になります配列 ['2', '5', '8']を作成します
var elementIds = []; 
$('a[rel="array"]').each(function() { 
    elementIds.push(this.id); 
}); 

しかし、ちょうど$('a[rel="array"]')と言っても、一致するすべての要素を保持する配列のような構造のjQueryオブジェクトが得られます。そのため、.each()メソッドを使用して各要素を繰り返し処理できます。実際に何をしようとしていても、独自の配列を設定するのではなく、jQueryを使って直接行うことができます。

関連する問題