我使用了一个json对象解决了我存储元素及其位置的问题。现在我可以轻松更改元素值:
myJsonObject = {el:[pos: 1, el: element1], el2:[pos: 2, el: element2], etc}
我有一个dom元素集合的对象,即:
var els = $('#myDiv div');
我需要做的是切换此对象中包含的两个元素的位置。例如:element[2]
取代element[4]
而element[4]
取代element[2]
。
通过论坛阅读我发现一个数组原型函数在数组上执行: Reordering arrays
但我无法使用它因为我的不是阵列。 Jquery有一个函数将对象更改为名为makeArray
的数组,但我必须将其保存为对象,否则我无法使用稍后我需要的所有jquery方法迭代我的对象。
有人有什么想法吗?
答案 0 :(得分:1)
JQuery选择只是增强数组,因此您可以使用数组表示法直接修改它们。
var selection = $('#myDiv div');
var tmp = selection[2];
selection[2] = selection[4];
selection[4] = tmp;
我不相信你所做的是一个好主意,但上述情况应该有效。
顺便说一句,一般来说,如果你有一个节点数组或一个NodeList,那么你可以把它作为一个参数传递给$()
来把它变成一个JQuery选择:
var nodes = documents.getElementsByTagName('p'); // Returns an ordinary NodeList
$(nodes).hide(); // You can run JQuery methods on the NodeList by passing it to $()
答案 1 :(得分:0)
你可以尝试这样的事情(疯狂的代码,同意):
var els = $('#myDiv div');
var el2 = els.eq(1); // second element in collection
var el2clone = el2.clone( true );
var el4 = els.eq(3); // fourth element in collection
el2clone.after( el4 );
el4.after( el2 );
el2.remove();
els = $('#myDiv div');