javascript - 将父 <li> 内容复制到另一个 <ul> onclick 中?

标签 javascript

在我的网站上我有两个列表。一个是空的,另一个装满了一些食谱。我想做的是让用户能够将他喜欢的食谱添加到他的收藏夹中。实际上是通过单击“喜欢”按钮将所选内容复制到空列表中。

HTML

<div id="myrecipes">
   <ul id="recipeList">
   </ul>
</div>

<div id="recipes">
 <ul>
   <li>
     <img src="trpeza.jpg" alt="">
       <p>recipe 1 <i onclick="like(this)" class="fa fa-thumbs-up"></i></p>
   </li>
   <li>
     <img src="trpeza.jpg" alt="">
     <p>recipe 1 <i onclick="like(this)" class="fa fa-thumbs-up"></i></p>
   </li>
 <ul>
</div>

我的JS

function like(x) {
    var emptyList = document.getElementById("recipeList");
    var listItem = x.parentNode;
        x.style.color = "green";
        listItem.appendChild(emptyList);
}

此外,我想添加一些关闭按钮,以便他可以轻松地将其从收藏夹中删除。

最佳答案

尝试下面的代码片段

function like(x) {
  var emptyList = document.getElementById("recipeList");
  if (x.classList.contains("fa-thumbs-up")) {
   // For Copying to Favourite Recipes
    var listItem = x.parentNode.parentNode;
    var cln = listItem.cloneNode(true);
    var oAddedIcon = cln.querySelector(".fa-thumbs-up");
    oAddedIcon.classList.remove("fa-thumbs-up");
    oAddedIcon.classList.add("fa-thumbs-down");
    oAddedIcon.style.color = "red";
    x.style.color = "green";
    emptyList.appendChild(cln);
  } else if (x.classList.contains("fa-thumbs-down")) {
  // For deleting from Favourite Recipes
    x.classList.remove("fa-thumbs-down");
    x.classList.add("fa-thumbs-up");
    emptyList.removeChild(x.parentNode.parentNode);

  }

}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div id="myrecipes">
  <h2>Favourite Recipes</h2>
  <ul id="recipeList">
  </ul>
</div>
<div id="recipes">
  <h2>Recipes</h2>
  <ul>
    <li>
      <img src="trpeza.jpg" alt="Recipe Image 1">
      <p>recipe 1 <i onclick="like(this)" class="fa fa-thumbs-up"></i></p>
    </li>
    <li>
      <img src="trpeza.jpg" alt="Recipe Image 2">
      <p>recipe 2 <i onclick="like(this)" class="fa fa-thumbs-up"></i></p>
    </li>
    <ul>
</div>

关于javascript - 将父 <li> 内容复制到另一个 <ul> onclick 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58514151/

相关文章:

javascript - array.slice() 如果我从 0 以外的任何地方开始,它就无法运行

javascript - 在 html5 音频元素到达播放结束之前 5 秒执行 Javascript 代码

javascript - 使用 JS 对象查询 MySQL,返回 [object Object] 作为表名

javascript - 如何在扫雷游戏中显示空单元格?

javascript - HTML 5 Canvas 滚动事件监听器不工作

javascript - 设置 GPS 和标记之间的 map 边界

javascript - 用于使用命名空间解析 XML 的 JavaScript 库?

javascript - 通过动态创建数组名称在 click 函数中引用 javascript 数组

javascript - 使用 Turbolinks 定期重新加载 Rails 4 中的页面

当鼠标悬停在 flash 上时,Javascript mousemove 事件不会触发