Javascript从链接获取参数

html代码


function getQuerystring() {

  var getUrlParameter = function getUrlParameter(sParam) {

    var sPageURL = window.location.search.substring(1),

      sURLVariables = sPageURL.split('&'),

      sParameterName,

      i;


    for (i = 0; i < sURLVariables.length; i++) {

      sParameterName = sURLVariables[i].split('=');


      if (sParameterName[0] === sParam) {

        return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);

      }

    }

  };


  var blog = getUrlParameter('c');

  document.getElementById('detail').innerHTML = blog;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div style="border: dashed; size: auto;"><a name="divtest" href="#detail?c=active" id="test" onclick="getQuerystring()">testing</a>

</div>

<div id="detail" style="border: 2px; size: auto;"></div>


这个函数应该在链接中显示 c 的值,但它在 div 中显示 undefined。我已经搜索了很多并尝试了很多东西,但似乎没有任何效果。请指导我正确的代码,我将不胜感激。

繁星淼淼
浏览 179回答 3
3回答

慕工程0101907

从链接获取参数您的代码使用var sPageURL = window.location.search.substring(1)这不是“来自链接”,因此需要更改。正如您已标记 jquery(尽管没有任何 jquery),这是一种可能的解决方案:$("#test").click(function() {&nbsp; getQuerystring(this);&nbsp; return false;});function getQuerystring(el) {&nbsp; console.log(el.href);&nbsp; var getUrlParameter = function(sParam) {&nbsp; &nbsp; var sPageURL = el.href.split('?')[1],&nbsp; &nbsp; &nbsp; sURLVariables = sPageURL.split('&'),&nbsp; &nbsp; &nbsp; sParameterName;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; for (var i = 0; i < sURLVariables.length; i++) {&nbsp; &nbsp; &nbsp; sParameterName = sURLVariables[i].split('=');&nbsp; &nbsp; &nbsp; if (sParameterName[0] === sParam) {&nbsp; &nbsp; &nbsp; &nbsp; return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; };&nbsp; var blog = getUrlParameter('c');&nbsp; document.getElementById('detail').innerHTML = blog;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div style="border: dashed; size: auto;">&nbsp; <a name="divtest" href="#detail?c=active" id="test">testing</a></div><div id="detail" style="border: 2px; size: auto;"></div>

慕后森

window.location.search&nbsp;将要:为您提供来自当前页面 URL 的数据,而不是链接到的页面为您提供查询字符串中的数据(以?片段开头并一直持续到片段的开头),而不是片段(以片段开头#并一直持续到结尾......即使片段包含 a&nbsp;?)您需要refToTheAnchor.search在属性中使用并修复查询和片段的顺序。

SMILET

您可以尝试使用使用 RegEx 查找查询参数的此函数。将参数名称传递给它以返回值。//to get query parameters.$.urlParam = function (name) {&nbsp; &nbsp; var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec($(location).attr('href'));&nbsp; &nbsp; return (results) ? results[1] : "";}然后你可以在你的代码中调用这个方法,如下所示。var paramValue = $.urlParam('paramName');如果您不想使用 location.href 值,可以修改该方法以传递任何 url。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript