如何使用 jquery add/remove 参数到 link

How to add/remove params to link with jquery

我有一些 select 字段,例如为我的数据表设置供应商 ID 和状态。当这些字段发生变化时,我想将这些参数包含在 link 中(link 调用将数据导出到 csv 的服务器函数)。我在 jquery/coffeescript 方面的经验非常有限,我很难让它发挥作用。到目前为止我所拥有的是:

$ ->
  $('#vendor-id').on 'change', ->
    $('#shipments-table').DataTable().ajax.reload()
    $('a.download-link').attr 'href', (index, href) ->
      param = 'vendor-id='+$('#vendor-id').val();
      if href.charAt(href.length - 1) == '?'
        href + param
      else if href.indexOf('?') > 0
        if href.indexOf(param) == 0
          href + '&' + param
      else
        href + '?' + param
    return

我的代码有两个问题。一个是由于某种原因,当我更改值时,参数被添加到 link 两次(例如: http://link.com?vendor-id=1&vendor-id=1

第二个问题是,当我 select 这个 select 框的不同值时,以前的值不会从 link 中删除,而是添加到它上面。

我该如何解决这个问题?

您可以在这里找到一些答案:Change URL parameters. For example: - 它对我有用。只需复制 updateURLParameter 函数并以这种方式使用它:

$ ->
   $('#vendor-id').on 'change', ->
   $('#shipments-table').DataTable().ajax.reload()
   $('a.download-link').attr 'href', (index, href) ->
     updateURLParameter(href, 'vandor-id', $('#vendor-id').val())