javascript - 单击项目列表然后显示到另一个列表

标签 javascript jquery html

我试图通过单击将项目列表显示到另一个列表。所选项目正在显示,但仅显示在一行中。我尝试添加分隔线,但没有成功。

我需要从列表选择中保留项目。这就像展示我选择的东西。真实场景是选择多个产品,然后显示选择的产品名称

如果客户取消选择项目,它需要不断更新列表显示的项目。

$(".list-select li").on("click", function() {
  $(this).toggleClass("selected");
  if ($(this).hasClass("selected")) {
    $(".list-show li").html($(".selected span").text() + "<br />");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list-select">
  <li> <span>item 1</span> </li>
  <li> <span>item 2</span> </li>
  <li> <span>item 3</span> </li>
</ul>

<ul class="list-show">
  <li> </li>
</ul>

最佳答案

您可以通过 clone()append() jQuery 方法添加(实际上是克隆然后将新元素附加到另一个地方)。将元素添加到下一个列表是必要的。要从第二个列表中删除它们(让我们想象一下,它应该通过单击第一个列表中的项目来工作),您可以使用 li:contains(SPECIFIC_CONTENT_TO_MATCH) 选择元素,然后只需 删除()它:

$(".list-select li").on("click", function() {
  $(this).toggleClass("selected");
  if ($(this).hasClass("selected")) {
    $(".list-show").append($(this).clone());
  } else {
    $(`.list-show li:contains('${$(this).text()}')`).remove();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Select:
<ul class="list-select">
  <li> <span>item 1</span> </li>
  <li> <span>item 2</span> </li>
  <li> <span>item 3</span> </li>
</ul>

Show:
<ul class="list-show"></ul>

关于javascript - 单击项目列表然后显示到另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52460750/

相关文章:

javascript - Github Pages 仅在选项卡之间切换时重新加载

javascript - 将 D3 中的条形图更改为折线图

Javascript 通过对象键像 SQL 一样在对象数组中搜索

html - <div> 中的可用空间

javascript - 如何减少setTimeOut中 'current'的时间?

javascript - babel React 查找模块时出现问题

javascript - 如何在不刷新页面的情况下获取URL的参数?

jquery - 在上一个事件完成后开始一个事件

javascript - 单击图像按钮会增加购物车价格 - Magento

html - CSS选择接下来的两个元素