所以基本上这是我的脚本:
http://jsfiddle.net/JJFap/42/
代码-
jQuery(document).ready(function() {
var rel = new Array();
var count = 0;
jQuery(".setting").each(function() {
rel[count] = [];
if(jQuery("span").attr("rel")) {
rel[count].push(jQuery("span").attr("rel"));
}
console.log(count);
count++;
});
jQuery("body").text(rel);
console.log(rel);
});
和
<div class="setting">
<span rel="Variable">Variable</span>
<span rel="Item">Item</span>
<span rel="Something">Something</span>
</div>
<div>
<span rel="Smth">Smth</span>
<span>Sec</span>
</div>
<div class="setting">
<span>Second</span>
<span rel="first">First</span>
<span rel="Third">Third</span>
</div>
我的问题是为什么它显示变量,变量?
我希望它显示Variable,First,但是我做不到。
基本上,我要实现的是创建一个新数组,在其中插入每个带有rel属性数组的div.setting span元素。
所以基本上在这个例子中它应该输出-
Array (
Array[0] => "Variable","Item","Something";
Array[1] => "first","Third";
)
希望你理解我的意思:)
编辑:
在我的另一个示例中,我尝试在每个函数的第一个内部添加jQuery(“span”)。each(function()...,但它输出了两个完整的数组,包含所有rel的span元素。我不能有不同的类/ id对于每个div元素,因为所有元素都将具有相同的类。
最佳答案
除了已经说过的内容,使用count
时还可以摆脱push()
和一个jQuery.fn.map()
,以及在向选择器中添加if
时摆脱[rel]
:
jQuery(document).ready(function() {
var rel = [];
jQuery(".setting").each(function() {
rel.push(jQuery(this).find('span[rel]').map(function() {
return this.getAttribute('rel');
}).get());
});
jQuery("body").text(rel);
console.log(rel);
});