【问题标题】:Get all parameters from url and insert on all hrefs except one从 url 获取所有参数并插入除一个之外的所有 href
【发布时间】:2023-03-10 22:13:01
【问题描述】:

朋友们,我需要你们的帮助。我需要从url获取参数

ex: www.test.com/?s=1&param=2&param=3

并放入页面上的所有href,减去参数= s。那么它看起来像这样:

ex: href='www.test.com/?param1&param=2'

这已经发生了,问题是我不想传递给 hrefs: s 参数

完整代码:

$(document).ready(function() {
 function querystringToDict(querystring){
    if (querystring.length === 0) {
       return {};
     }
   let queryDict = {}
   querystring.split("&").forEach(function(item) {
      queryDict[item.split("=")[0]] = item.split("=")[1]
   });
      return queryDict;
   }

  var queryDict = querystringToDict(location.search.substr(1));
  var queryHref, queryFinal = {};              
  var lctSearch = location.search;

  $('html a').each(function() {
      // if the href contains www.test.com insert params
     if ($(this).prop('href').includes('www.test.com')){
        if(lctSearch != ''){
           param = $(this).attr('href').split('?')[1] === undefined ? '' : 
                   $(this).attr('href').split('?')[1];
                            
           queryHref = querystringToDict(param);
           queryFinal = Object.assign({}, queryHref, queryDict);
           paramFinal = Object.keys(queryFinal).map(key => key + '=' + queryFinal[key]).join('&');
           $(this).attr('href',$(this).attr('href').split('?'[0].concat('?',paramFinal));
           }
        } 
    }); 
});

【问题讨论】:

    标签: javascript jquery parameters


    【解决方案1】:

    你可以在你写的函数中排除它:

    querystring
      .split("&")
      .filter(el => el.split("=")[0] != 's')
    //              ^^^^^^^^^^^^^^^^^^^^^^^---- exclude the "s" parameter
      .forEach(function(item) {
      queryDict[item.split("=")[0]] = item.split("=")[1]
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-07
      • 2021-05-10
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 2011-09-11
      • 2012-08-20
      • 1970-01-01
      相关资源
      最近更新 更多