我有关于获得我的div的命令的问题。
场景:我有这样的结构:
<div class="container">
<div class="element" id="element1">
<div class="element" id="element2">
<div class="element" id="element3">
<div class="element" id="element4">
但我正在重新排序/删除/添加一些与某些条件相关的元素 所以假设最终结构如下:
<div class="container">
<div class="element" id="element6">
<div class="element" id="element2">
<div class="element" id="element8">
<div class="element" id="element4">
<div class="element" id="element1">
<div class="element" id="element7">
最后我想得到最终顺序的元素列表 我正在使用
var ord= '';
for (i=1;i<=($('.element').length);i++){
var index = $('#element'+i).index();
ord+= index+' / ';
}
但它给出了创建顺序中元素的索引,而不是最终顺序。 最后,我认为我需要从其索引中获取项目ID,如
var index = indexof($('#element'+i)); // ok this is not lookink like correct :)
但我找不到。
答案 0 :(得分:5)
对于这个html:
<div class="container">
<div class="element" id="element6">1</div>
<div class="element" id="element2">2</div>
<div class="element" id="element8">3</div>
<div class="element" id="element4">4</div>
<div class="element" id="element1">5</div>
<div class="element" id="element7">6</div>
</div>
和这个javascript:
var arr = Array();
$('.container .element').each(function(){
arr.push($(this).attr('id').replace('element', ''));
})
你明白了:
arr = ["6", "2", "8", "4", "1", "7"]
答案 1 :(得分:3)
这个标记(重新排序的元素......):
<div class="container">
<div class="element" id="element4"></div>
<div class="element" id="element1"></div>
<div class="element" id="element5"></div>
<div class="element" id="element6"></div>
<div class="element" id="element7"></div>
</div>
$('。container')。find('。element')命令将按照文档中显示的顺序生成元素。
elements = $('.container').find('.element')
console.log(elements[0].id) // will print out 'element4'
console.log(elements[2].id) // ---> 'element5'
依旧......
从'elementX'字符串中获取数字id只需执行
parseInt(elements[3].id.replace('element','')) // will return 6
答案 2 :(得分:1)
我认为你最好只创建一个N元素数组并用div的起始顺序初始化它。然后,每次交换元素并更改它们的顺序时,您都会通过交换相应的元素来更新数组,并且每次只读取数组以获取当前的顺序。
例如,假设你有10个元素,用以下代码初始化数组:
order = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
每次进行一些重新排序时,假设您将元素编号X与元素编号Y交换,您还交换相应的数组元素:
swap(order, X, Y);
(顺便说一句,你必须定义一个交换函数)。
所以order
数组每次都会包含当前的顺序。