添加和删​​除到本地存储中的收藏夹

时间:2017-09-06 05:27:01

标签: jquery local-storage

我正在学习Jquery。现在我正在创建一个添加到收藏夹链接的列表。我想使用jquery将li值(例如html / Jquery / css)存储在本地存储上。一旦添加到本地存储,我想将“添加到收藏夹”的文本更改为“删除”。

然后,当我点击“删除”链接后,我想再次“添加到收藏夹”。

请检查 this link ,我已粘贴当前代码。

感谢。

$('.lists a').click(function(e){
    var favs = $(this).parent().html();
    alert(favs);
  $(this).text('Remove');
});

5 个答案:

答案 0 :(得分:3)

<强> jsfiddle

    else:
        r = next((j for j in range(u ,0, -1) if j not in A), None)
        if r is not None:
            Ans = r
            print(Ans)
            break
 <ul class="list">
      <li id="pancakes">Pancakes</li>
      <li id="donuts">Donuts</li>
      <li id="cupcakes">Cupcakes</li>
      <li id="icecream">Icecream</li>
      <li id="cookies">Cookies</li>
      <li id="chocolate">Chocolate</li>
    </ul>
.list li {
  cursor: pointer;
}
.list li:hover:after,
.list li.fav:after {
  content: ' \2605';
  color: rgb(255, 203, 0);
}
.list li.fav:hover:after {
  content: ' \2606';
}

答案 1 :(得分:2)

有很多方法可以做到这一点。这是其中之一。

第一个函数检查以前是否已在localstorage中保存任何值,并相应地设置链接文本的文本。每次刷新/重新打开页面时都会运行。

第二个功能保存/删除localstorage中的密钥。

我已使用<li>的文字作为查询的关键字(即&#39; html5&#39;,&#39; jQuery&#39; ...等)。您可以选择使用命名空间(例如localStorage.getItem('myNamespace' + favs))作为前缀,并使用相同的方法来检索值,以便在需要时将其与localstorage中的其他值分开。

var addFav = "Add to Fav";
var remFav = "Remove";

// update anchor tag text based on previous stored selections
$('.lists a').each(function(e){

  var favs = $(this).parent().contents().filter(function(){ 
    return this.nodeType == 3;
  })[0].nodeValue

  if (localStorage.getItem(favs) === "saved") {
      $(this).text(remFav);
    } else {
      $(this).text(addFav);
  }
});

// this function assumes that 1) <li> has at least some text outisde the <a>, 
// and 2) the text is unique for every <li> - since it is used as a key in the lookup
$('.lists a').click(function(e){

    // Grab the text of the parent, whilst excluding the text in the anchor tag (https://stackoverflow.com/a/14755309/1544886).
  var favs = $(this).parent().contents().filter(function(){ 
    return this.nodeType == 3;
  })[0].nodeValue

  if (localStorage.getItem(favs) === null) {
    localStorage.setItem(favs, "saved");
      $(this).text(remFav);
    } else {
    localStorage.removeItem(favs);
      $(this).text(addFav);
  }
});
<ul class="lists">
    <li>Html5 <a href="#"></a></li>
    <li>Jquery <a href="#"></a></li>
    <li>Php <a href="#"></a></li>
    <li>Photoshop <a href="#"></a></li>
</ul>

外部演示:https://jsfiddle.net/n4byghd3/1/

要测试演示,请选择一个或两个项目,然后关闭并重新打开该页面(或者只需再次单击“运行”)。

答案 2 :(得分:1)

您好,您可以使用以下语法使用本地存储,因此只需设置&#39;添加到收藏&#39; 然后点击删除按钮获取&#39;添加到收藏&#39;价值回归。

  1. 您可以使用此语法

    在本地存储中设置值
    $em = $this->getDoctrine()->getManager();
    $empleado_alta=$em->getRepository('EmpleadosBundle:Empleados')->find($this->get('session')->get('empleado_id'));
    
  2. 您可以使用此语法

    在本地存储中获取值
    localStorage.setItem('AddToFav', "Add To Fav");
    
  3. 您可以使用此语法

    删除本地存储中的值
    var grdTotal= localStorage.getItem('AddToFav');
    
  4. 感谢。

答案 3 :(得分:0)

  

<强> HTML

<ul id="FavList" class="lists">
  <li>Html5 <a href="#">Add to Fav</a></li>
  <li>Jquery <a href="#">Add to Fav</a></li>
  <li>Php <a href="#">Add to Fav</a></li>
  <li>Photoshop <a href="#">Add to Fav</a></li>
</ul>
  

<强>的JavaScript

if (!localStorage.getItem("LocalData")){  /*Check if, localStorage item `LocalData` is not set Yet*/
  localStorage.setItem("LocalData",$('#FavList').html());  /*Set `#FavList` HTML To LocalStorage item `LocalData`*/
}else{
  $('#FavList').html(localStorage.getItem("LocalData"));   /*Set LocalStorage item `LocalData` to `#FavList` HTML*/
}

$('.lists a').click(function(e){
  var text = $(this).text();
  $(this).text(text == "Add to Fav" ? "Remove" : "Add to Fav"); /*Toggle the text between `Add to Fav` and `Remove`*/
  localStorage.setItem("LocalData",$('#FavList').html()); /*Update localStorage item `LocalData` from `#FavList` HTML*/
});

注意:以下是localStoragesetItemgetItem

的详细信息

答案 4 :(得分:0)

添加了简单的两步,添加并检查到localStorage。

  • 检查是否已添加到localStorage并根据字符串
  • 进行设置
  • 创建Click事件到Favorite / remove from / from localStorage

您还可以在以下位置查看代码:https://jsfiddle.net/1h433ykk/1/

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<ul class="lists">
  <li>Html5<a href="#">Favorite</a></li>
  <li>Jquery<a href="#">Favorite</a></li>
  <li>Php<a href="#">Favorite</a></li>
  <li>Photoshop<a href="#">Favorite</a></li>
</ul>
var addToFav = "Favorite";
var remove = "Remove";

/* Check for each a tag if already added to localStorage
 * .contents[0].nodevalue returns value of tag a
 */
$('.lists a').each(function(e) {
  if (localStorage.getItem($(this).parent().contents()[0].nodeValue)) {
    $(this).html(remove);
  } else {
    $(this).html(addToFav);
  }
});
//create click event and check if nodeValue is already added or not and set text accordingly
$('.lists a').click(function(e) {
  var nodeVal = $(this).parent().contents()[0].nodeValue;
  if (localStorage.getItem(nodeVal)) {
    localStorage.removeItem(nodeVal);
    $(this).html(addToFav);
  } else {
    localStorage.setItem(nodeVal, "true");
    $(this).html(remove);
  }
});
body {
  font-family: arial;
  font-size: 13px;
}

ul {
  max-width: 200px;
}

ul,
ul li {
  padding: 0;
  margin: 0;
  list-style: none;
}

ul li {
  padding: 10px;
  border: 1px solid #CCC;
  margin: -1px 0 0 0;
}

ul li a {
  color: #cb0070;
  text-decoration: none;
  float: right;
}