jQuery技术:函数使用javascript和Jquery检索url变量?

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

 

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

 $(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

我尝试了另一个function:

 $(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); }); }); 

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

    作为您的问题的替代方案,为什么不将hrefid部分放入data参数并读取? 这将节省您必须剖析URL。 试试这个:

      
     $('.edit').click(function(){ var id = $(this).data("id"); alert(id); }); 

    试试这个:

     function getParameterByName( name ) { name = name.replace(/[[]/,"\[").replace(/[]]/,"\]"); var regexS = "[\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return decodeURIComponent(results[1].replace(/+/g, " ")); } 

    你几乎第一次就做对了,你只需要将vars声明为对象并摆脱vars.push(...)

    这是一个有效的例子 –

    来源https://jsfiddle.net/KN9aK/1/

    将其更改为使用对象,而不是数组。

     function getUrlVars() { var vars = {}, //<--object 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[hash[0]] = hash[1]; //<--add to the object } return vars; //<--return the object } 

    您也可以使用window.location.search这样您就不必执行该初始切片。

    需要了解更多jQuery教程分享函数使用javascript和Jquery检索url变量?,都可以关注jQuery技术分享栏目---计算机技术网(www.ctvol.com)!

      以上就是jQuery教程分享函数使用javascript和Jquery检索url变量?相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/982653.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐