【问题标题】:How to add/remove params to link with jquery如何添加/删除参数以与 jquery 链接
【发布时间】:2016-07-28 13:40:45
【问题描述】:

我有一些选择字段,例如为我的数据表设置供应商 ID 和状态。当这些字段更改时,我想将这些参数包含在链接中(链接调用将数据导出到 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

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

第二个问题是,当我为这个选择框选择不同的值时,之前的值并没有从链接中删除,而是添加到它上面。

我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery ruby-on-rails coffeescript


    【解决方案1】:

    您可以在这里找到一些答案:Change URL parameters。例如:https://stackoverflow.com/a/10997390/4335261 - 它对我有用。只需复制 updateURLParameter 函数并以这种方式使用它:

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

    【讨论】:

    • 这对我不起作用。 (我修正了“vandor-id”错字)。链接不会改变。是否需要存在参数才能对其进行更改?默认情况下不存在,但在设置值后添加
    • 糟糕。阅读链接后,我包含了该功能,并且它运行良好。干杯队友!!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多