javascript - 使用 javascript 和 Jquery 检索 url 变量的函数?

标签 javascript jquery

在我的脚本中有一个简单的列表显示了用于编辑的链接

<ul>
<li><a href="edit.php?id=5" class="edit">click here</a></li>
<li><a href="edit.php?id=5" class="edit">click here</a></li>
<li><a href="edit.php?id=5" class="edit">click here</a></li>
<li><a href="edit.php?id=5" class="edit">click here</a></li>
</ul>

我需要的是读取变量 id,以便我可以通过 .ajax 调用发送它,我尝试了这个函数

$(document).ready(function(){
    function getUrlVars() {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1)
                                         .split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
     }
     $('.edit').click(function(){
         var test = getUrlVars()["id"];
         alert(test);
     });
});

当我单击链接时,警告消息显示 undefined

我尝试了另一个功能:

$(document).ready(function(){
    var urlParams = {};
    (function () {
        var match,
               pl = /\+/g,  // Regex for replacing addition symbol with a space
           search = /([^&=]+)=?([^&]*)/g,
           decode = function(s) { 
               return decodeURIComponent(s.replace(pl, " ")); 
           },
           query  = window.location.search.substring(1);
           while (match = search.exec(query))
               urlParams[decode(match[1])] = decode(match[2]);
     })();
     $('.edit').click(function(){
         var test = urlParams["id"];
         alert(test);
     });
 });

...但即使这样也会显示警告消息 undefined

最佳答案

您尝试的方法没有将 URL 作为参数,而是解析当前的 URL 参数(即您兄弟中的 URL)。只需像这样修改第一个方法即可使其工作:

$(function() {
    function getUrlVars(url) {
        var vars = [], hash;
        var hashes = url.slice(url.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }
    $('.edit').click(function() {
        var href = $(this).attr("href");
        var test = getUrlVars(href)["id"];
        alert(test);
    });
});

旁注:您还可以修改第二个,它们都做同样的工作。

关于javascript - 使用 javascript 和 Jquery 检索 url 变量的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727081/

相关文章:

javascript - AngularJS <a> 标签链接不起作用

javascript - 在 heroku 上部署的 rails 3.1 项目出现问题

Javascript 扁平化 lambda 中的生成器

jquery - 使用插件位于左侧的表情符号符号和左侧的表情符号框

jquery - 滑动 DIV 的快速 JQuery 问题

javascript - 单击事件不适用于动态创建的按钮

javascript - 如何在 JavaScript 中使用 asp 变量?

jQuery:以数组形式返回复选框的值?

javascript - 在 ASP.NET MVC 4 View 中将数据从父窗口传递到弹出(子)窗口

javascript - 无法使用 javascript if 条件