Javascript/jquery从具有相同rel的元素创建数组
Javascript/jquery create array from elements with same rel?
如何从一组具有相同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都作为值,只是为了使用一些东西。但订购身份证就足够了。
如何做到这一点?
const anchors = document.getElementsByTagName('a'), arr = [];
for (let i = 0; i < anchors.length; i++){
let 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/
或者,更简洁地说:
const anchors = [...document.getElementsByTagName('a')];
const arrs = anchors.filter(x => x.getAttribute('rel') === 'array')
.map(x => { return { 'id': x.id, 'url': x.getAttribute('url') } });
jquery不够!
var arr = [];
$('a[rel="array"]').each(function(){
arr.push($(this).attr('url'));
});
如果您使用的是jquery:,则非常简单
var arr = [];
$('a[rel="array"]').each(function() {
arr.push($(this).attr('url'));
});
Fiddle
var itemArray = [];
$("a[rel='array']").each(function() { itemArray.push($(this).attr("url") });
尝试
var a = {};
$('#wrap a').each(function() {
if($(this).attr('rel') === "array") {
a[$(this).attr('id')] = $(this).attr('url');
}
});
数组无法切割它,您需要一个对象。现场直播:http://jsfiddle.net/martincanaval/rAPkL/
var elements = [];
$('a[rel="array"]').each(function() {
elements[this.id] = $(this).attr('url');
});
请注意,这只创建了一个稀疏数组,其中只有元素id指定的索引值,这对我来说没有多大意义,但这正是您所要求的。如果任何id都可以是非数字的,那就没有意义了——如果是这样,你应该使用对象而不是数组,即:
var elements = {};
"我把每个URL都作为值,只是为了使用一些东西。但对ID进行排序就足够了。"
若你们的意图是获得一个id数组,那个么你们可以这样做:
var elementIds = [];
$('a[rel="array"]').each(function() {
elementIds.push(this.id);
});
这将创建数组['2', '5', '8']
,其中id将按照它们在源html中出现的顺序排列。
然而,仅仅说$('a[rel="array"]')
就会给你一个jQuery对象,它是一个类似数组的结构,包含所有匹配的元素——这就是为什么我们可以使用.each()
方法迭代每个元素。因此,无论您真正想做什么,都可以直接使用jQuery来完成,而不是设置自己的数组。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何选择具有特定ID和特定rel的元素
- 按 rel 属性对元素进行分组
- Javascript/jquery从具有相同rel的元素创建数组
- 如何在使用value和rel属性更改选项元素时检查复选框
- 所有具有rel属性的元素列表
- 如何添加“rel"属性设置为选择元素的href