从可排序列表中获取所有元素属性
Get all Element Attributes from a Sortable list
所以我有一个div列表,这些div可以使用Jquery UI选项sortable进行排序
这些div包含一些使用setAttribute方法的自定义属性,如:.setAttribute("Nr", "Nr_1")
和.setAttribute("V", "V_1")
。我已经可以使用.toArray
方法获得单个属性的数组
$("#NameContainer").sortable("toArray", { attribute: 'value'});
$("#NameContainer").sortable("toArray", { attribute: 'Nr' });
$("#NameContainer").sortable("toArray", { attribute: 'V' });
<div id="NameContainer" class="ui-widget">
<div value="Name_1" id="Name_1">John</div>
<div value="Name_2" id="Name_2">Jack</div>
<div value="Name_3" id="Name_3">Charlie</div>
<div value="Name_4" id="Name_4">Sawyer</div>
<div value="Name_5" id="Name_5">Yin</div>
<div value="Name_6" id="Name_6">Ben</div>
</div>
我现在的问题是,在单个变量中对每个元素进行排序或课程后,我如何才能以正确的顺序获得它们的所有属性
更新:
所以我的第一个按预期工作的解决方案是这样的:
for(var i = 0; i<ArrayList.length; i++){
var attributeArray = [arrayValue[i], arrayNr[i], arrayV[i] ];
mainArray.push(attributeArray);
}
然后调用main:mainArray[ ] [1]
EDIT:只对主div容器执行此操作。。固定:
如果你想按照找到属性的顺序获得属性,那么我认为你可以按照以下方式来做:
var el = $('#NameContainer > div');
var nodes=[], values=[];
el.each(function() {
for (var att, i = 0, atts = $(this).attributes, n = atts.length; i < n; i++){
att = atts[i];
nodes.push(att.nodeName);
values.push(att.nodeValue);
}
});
这将给您提供两个数组,其中节点的索引i将为您提供属性名称,值的相同索引i将是该属性的伴随值。这可以通过多种不同的方式进行重组,但这是实现目标的简单方法。
相关文章:
- javascript来显示元素属性
- 自定义HTML元素属性未显示-Web组件
- 主元素属性?(或技术)
- 使用模板后,使用Angular获取元素属性值
- 如何从不同范围外的元素属性中获取求值表达式
- 可以't访问元素属性(如果已明确设置)
- 传递引用 jQuery 后无法访问元素属性
- 如何替换元素属性中的部分文本
- 添加新元素属性
- 如何使用jQuery访问父元素属性
- 使用jQuery.attr()方法获取元素属性
- 修改时,哪些DOM元素属性会导致浏览器执行回流操作
- Javascript数据将元素属性绑定到URL中的锚href
- 初始化可从元素属性值观察到的Knockout
- 获取内联样式中的元素属性
- 如何在 html 元素属性中使用 Angular 2 外推法
- 将元素属性与 javascript 折叠方法结合使用时,引导折叠无法正常工作
- 如何观察聚合物元素属性值从索引.html的变化
- 使用 JavaScript 修改 DOM 元素属性
- 聚合物节点到元素属性