在我的脚本中有一个简单的列表显示了要编辑的链接
我需要的是读取变量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); }); });
旁注:你也可以修改第二个,它们都做同样的工作。
作为您的问题的替代方案,为什么不将href
的id
部分放入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