javascript - jquery 在两个 ul 之间交换 ul 子级

标签 javascript jquery html

我有以下带有两个列表的 html,我想按一个按钮并在两个列表之间交换 ul 和 li 元素

<ul class="list-group" id="lines">
<li class="list-group-item> 1 <i class="fa fa-times" aria-hidden="true"></i></li>
<li class="list-group-item> 2 <i class="fa fa-times" aria-hidden="true"></i></li>
</ul>

<ul class="list-group" id="columns">
<li class="list-group-item> 3 <i class="fa fa-times" aria-hidden="true"></i></li>
<li class="list-group-item> 4 <i class="fa fa-times" aria-hidden="true"></i></li>
</ul>

我尝试使用以下 jquery 代码来完成此任务

$("#swaplists").click(function () {

 var $temp1 = $("#lines").children.clone;
 var $temp2 = $("#columns").children.clone;
 clearLinesAndColumns();
 $temp2.appendTo("#lines");
 $temp1.appendTo("#columns");

});

预期结果是

<ul class="list-group" id="lines">
<li class="list-group-item> 3 <i class="fa fa-times" aria-hidden="true"></i></li>
<li class="list-group-item> 4 <i class="fa fa-times" aria-hidden="true"></i></li>
</ul>

<ul class="list-group" id="columns">
<li class="list-group-item> 1 <i class="fa fa-times" aria-hidden="true"></i></li>
<li class="list-group-item> 2 <i class="fa fa-times" aria-hidden="true"></i></li>   
</ul>

但我收到错误

Uncaught TypeError: Cannot read property 'appendTo' of undefined

如何使用 jquery 实现此功能以及为什么 children.clone 未定义?

最佳答案

您可以简单地获取 html() 并插入到其他中,而不是克隆和附加:

$("#swaplists").click(function() {
  var linesHtml = $("#lines").html();
  var columnsHtml = $("#columns").html();
  $("#lines").html(columnsHtml);
  $("#columns").html(linesHtml);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list-group" id="lines">
  <li class="list-group-item"> 1 <i class=" fa fa-times " aria-hidden="true "></i></li>
  <li class="list-group-item"> 2 <i class="fa fa-times" aria-hidden="true"></i></li>
</ul>

<ul class="list-group" id="columns">
  <li class="list-group-item"> 3 <i class=" fa fa-times " aria-hidden="true "></i></li>
  <li class="list-group-item"> 4 <i class="fa fa-times" aria-hidden="true"></i></li>
</ul>

<button id="swaplists">Swap</button>

关于javascript - jquery 在两个 ul 之间交换 ul 子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44925616/

相关文章:

Javascript TypeError : this. init is not a function 错误

php - 使用 PHP+CSS 检测包含大写单词的行并使用粗体行设置样式

javascript - JS : Escaping a string with backslash at the end of a string, 用于与 jQuery 函数一起使用

javascript - 单击 css 内容属性

javascript - 按钮和选择器在 AngularJS 中无法正确通信

html - 纯 CSS 选择菜单/下拉菜单 : How to make custom right arrow?

javascript - 将输入类型动态放置在 <td> 标签内(表)-innerHTML 标签在 internet-explorer 中不起作用

javascript - Python:发送 JSON 数据时使用 POST 请求的 FastAPI 错误 422

javascript - 我在 Foursquare field 搜索 API 上做错了什么吗?

javascript - 使用 Knockout.JS 构建分页控件