如何在Java脚本中选择分配给Django变量的html id

时间:2018-12-28 07:41:37

标签: javascript django

我在html中有一个ID。此ID已分配给包含广告ID的Django变量。我想使用本地存储(cookie)将此广告ID添加到收藏夹列表中。现在,该ID处于循环中,并且每个广告都将使用不同的ID。问题是当用户单击特定ID图标时如何选择特定ID。

这是我的代码:

{% for item in result %}
    <span id="favouriteBtn" style="color:#ccc" title="add this post to favorite list"> &#9734; </span>
{% endfor %}

ID应该是这种方式:

id={{item.id}}

这是javascript函数的一部分:

$('#favouriteBtn').click(function(){
currentAddFav();

我要将ID设置为:

id={{item.id}}

,并能够选择用户单击的特定ID。我该怎么办?

currentAddFav函数如下:

function currentAddFav(){
if(localStorage.getItem('favourites')){//If there are favourites
    var storage = JSON.parse(localStorage['favourites']);
    if (storage.indexOf('data-item-id') == -1) { 
      // # not found
      storage.push('data-item-id');
      localStorage.setItem('favourites', JSON.stringify(storage));
    } else {
      // # found
      console.log('item already in favorites')
    }

}           
else
{//No favourites in local storage, so add new
    var favArray= [];
    favArray.push('data-item-id');
    localStorage.setItem("favourites", JSON.stringify(favArray));
    console.log('New favourites list');
}

}

2 个答案:

答案 0 :(得分:1)

您可以编辑跨度以使其具有名为“ data-item-id”的属性,该属性等于您的商品的ID,如下所示:

{% for item in result %}
    <span id="favouriteBtn" onclick="currentAddFav({{ item.id }})" style="color:#ccc" title="add this post to favorite list"> &#9734; </span>
{% endfor %}

“ currentAddFav”功能可以处理其余的过程(例如,从此处添加到Cookie或其他内容。

您的“ currentAddFav”功能可能如下所示:

function currentAddFav(item_id){
    if (localStorage.getItem('favourites')) { // If there are favourites
        var storage = JSON.parse(localStorage['favourites']);
        if (storage.indexOf(item_id) == -1) { 
          // not found
          storage.push(item_id);
          localStorage.setItem('favourites', JSON.stringify(storage));
        } else {
          // found
          console.log('item already in favorites')
        }

    } else { // No favourites in local storage, so add new
        var favArray= [];
        favArray.push(item_id);
        localStorage.setItem("favourites", JSON.stringify(favArray));
        console.log('New favourites list');
    }
}

答案 1 :(得分:0)

您可以尝试这样:

{% for item in result %}
    <span id="{{ item.id }}" style="color:#ccc" title="add this post to favorite list"> &#9734; </span>
    <script type="text/javascript">
        var id_selected = "{{ item.id }}";
    </script>
{% endfor %}

,当页面加载完成时,您可以在此var id_selected

中添加点击功能
$('#' + id_selected).click(function () {
        currentAddFav();
});