如何在Javascript中交换两个列表的子列表
How to swap sublists of two lists in Javascript?
我试图只使用JavaScript交换两个列表,但我尝试的任何方法似乎都失败了。
这是我的两个清单:
<h3>Lists</h3>
<ul >
<li >l<sub>1 </sub>
<ul id="e1">
<li>l<sub>11</sub>-a</li>
<li>l<sub>12</sub>-b</li>
<li>l<sub>13</sub>-a</li>
<li>l<sub>14</sub>-a</li>
<li>l<sub>15</sub>-b</li>
<li>l<sub>16</sub>-b</li>
</ul>
</li>
<li >l<sub>2 </sub>
<ul id="e2">
<li>l<sub>21</sub>-b</li>
<li>l<sub>22</sub>-a</li>
<li>l<sub>23</sub>-a</li>
<li>l<sub>24</sub>-b</li>
</ul>
</li>
</ul>
<br/>
到目前为止,我已经尝试过像这样迭代每个列表:
var temp, index;
var myFirstList = document.getElementById("e1").getElementsByName("li");
var mySecondList = document.getElementById("e2").getElementsByName("li");
for (index = 0; index < myFirstList.length; index++)
{
temp.appendChild(myFirstList.removeChild(myFirstList[0]);
}
for (index = 0; index < mySecondList.length; index++)
{
myFirstList.appendChild(mySecondList.removeChild(mySecondList[0]));
}
for (index = 0; index < temp.length; index++)
{
mySecondList.appendChild(temp.removeChild(temp[0]));
}
document.getAttribute("e1").appendChild(myFirstList);
document.getAttribute("e2").appendChild(mySecondList);
我也试过:
var myFirstList = document.getElementById("e1").getElementsByName("li");
var mySecondList = document.getElementById("e2").getElementsByName("li");
document.getElementById("e1").removeAttribute(("li");
document.getElementById("e2").removeAttribute(("li");
document.getAttribute("e1").appendChild(myFirstList);
document.getAttribute("e2").appendChild(mySecondList);
它们都没有交换l1和l2中的子列表。任何建议都会很有帮助。
我不明白你说的交换是什么意思,请详细说明,但是,如果你想使用它们的父元素ul迭代li元素,你可以这样做。
var sublist1 = document.getElementById('e1');
for (var i=0; i<sublist1.children.length; i++){
sublist1.children[i].innerHTML = someVariable;
}
使用JQueryappendTo方法可以很容易地解决您的问题。
var childL1 = $('#e1').children();
var childL2 = $('#e2').children();
childL2.appendTo($('#e1'));
childL1.appendTo($('#e2'));
试试这个。
var sublist1 = document.getElementById('e1');
var sublist2 = document.getElementById('e2');
document.getElementsByTagName('ul')[0].childNodes[1].appendChild(sublist2);
document.getElementsByTagName('ul')[0].childNodes[3].appendChild(sublist1);
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 根据两个下拉列表的默认值禁用按钮
- 根据前两个下拉ID显示第三个下拉列表
- 修复列表的绝对位置(li's隐藏在前两个后面)
- 使用两个下拉列表的值填充文本框
- 如何在Javascript中交换两个列表的子列表
- 需要在 html 中使用两个下拉列表来显示不同的 json 值
- 两个下拉列表中的文本字段
- Meteor:如何使用空格键创建包含两个集合数据的树列表
- 使用Jquery比较Javascript中的两个列表/表
- 如何在AngularJS中显示基于两个下拉列表的内容
- jquery-mobile的列表视图中的两个弹出窗口
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- jQuery验证插件-比较两个选择下拉列表的自定义方法
- 如何使两个角度列表在html表中并排显示
- 如何在同一个网页上创建两个连接列表
- Kendo Grid UI水印列或一列的两个下拉列表
- AngularJS:用两个JSON数组填充复选框列表,最初检查了一个数组中的一些项
- jQuery ui自动完成下拉列表中的两个字段
- 选择绑定到同一范围的按钮,单击时会相互触发.如何从angular.js中的两个选择列表按钮解除范围绑定