Javascript 按下按钮时删除特定cookie

Javascript 按下按钮时删除特定cookie,javascript,jquery,cookies,Javascript,Jquery,Cookies,我有一个下拉列表,它根据用户选择设置cookie,这是做回发,并在这一点上设置cookie。为了给你多一点上下文,网站是一个目录,用户去把他们的选择,然后他们搜索。在显示的产品顶部有一种对列表排序的方法,这是设置cookie的地方。在客户进行新的搜索或重置搜索之前,这在正常情况下非常有效。由于排序有一个cookie,该cookie没有直接绑定到搜索,因此会维护cookie并始终显示所选内容,即使在新搜索完成后,现在可能不会使用此方法进行排序 因此,我正在寻求有关如何在选择按钮时删除此cookie

我有一个下拉列表,它根据用户选择设置cookie,这是做回发,并在这一点上设置cookie。为了给你多一点上下文,网站是一个目录,用户去把他们的选择,然后他们搜索。在显示的产品顶部有一种对列表排序的方法,这是设置cookie的地方。在客户进行新的搜索或重置搜索之前,这在正常情况下非常有效。由于排序有一个cookie,该cookie没有直接绑定到搜索,因此会维护cookie并始终显示所选内容,即使在新搜索完成后,现在可能不会使用此方法进行排序

因此,我正在寻求有关如何在选择按钮时删除此cookie集的帮助,此按钮是:

  <a id="dnn_ctr555_ProductSearch_rpData_cmdAdvSearch_0" class="postbacklink searchpostbacklink nb-catfilter-search" href="javascript:__doPostBack('dnn$ctr555$ProductSearch$rpData$ctl00$cmdAdvSearch','')">Search</a>
要了解cookie和下拉列表工作的详细信息,请参见以下内容:

 <!-- List header -->
 <select id="Selection" class="sorter" onchange="document.cookie= 'myDDIdx = ' + this.selectedIndex + '; path=/;';location=this.options[[this.selectedIndex]].value" style="float:right;margin-right:8px;">
  <option value="">Sort by</option>
  <option value="?orderby=0">Code</option>
  <option value="?orderby=1">Title A-Z</option>
  <option value="?orderby=2">Title Z-A</option>
  <option value="?orderby=3">Brand</option>
  <option value="?orderby=4">Lowest price</option>
  <option value="?orderby=5">Highest price</option>
  <option value="?orderby=6">Lowest Quantity</option>
  <option value="?orderby=7">Highest Quantity</option>
  </select>
  <div style="clear:both;"></div>


  <script>
      var sidx = document.cookie.indexOf("myDDIdx");
       if(sidx != -1)
      window.onload = function () { document.getElementById("Selection").selectedIndex =                     document.cookie.substr(sidx + 8,1); }
  </script>
任何代码狙击手都会非常感激,因为我觉得我的头撞在了砖墙上

原始document.cookie API太差劲了。您应该添加以下代码段,而不是尝试直接访问它:

此外,您还可以将原始cookie setter代码简化为如下内容:

<select id="Selection" class="sorter" onchange="docCookies.setItem('myDDIdx', this.selectedIndex); location=$(this).val();" style="float:right;margin-right:8px;">

不确定设置位置变量的原因是什么,尽管我已经简化了它,假设您加载了jQuery,因为您的问题被jQuery标记了

如果您随身携带cookie名称,那么纯javascript:

        var Cookienames = ['cookie1', 'cookie2', 'cookie3'];
            function clearCookies(Cookienames){
                for(i=0; i <= Cookienames.length; i++){
                    document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';  
                }
            }
在要删除cookie的位置调用此函数。clearCookiesCookienames

此外,如果您正在使用父域设置跨浏览器cookie,则:

 function clearCookies(Cookienames){
                for(i=0; i <= Cookienames.length; i++){
                    document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=".xyz.com";path=/';  
                }
            }    

document.cookie='myDDIdx=';应该这样做。所以我已经尝试了上面的方法,它正在设置cookie,但没有设置位置,所以刷新时下拉选择丢失了。它以前设置过吗?位置变量用于什么?你的代码没有显示它的使用位置。刷新页面将始终清除所有javascript变量。
        var Cookienames = ['cookie1', 'cookie2', 'cookie3'];
            function clearCookies(Cookienames){
                for(i=0; i <= Cookienames.length; i++){
                    document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';  
                }
            }
 function clearCookies(Cookienames){
                for(i=0; i <= Cookienames.length; i++){
                    document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=".xyz.com";path=/';  
                }
            }