时隔多日我不再是之前的懵懂少年现在再次用到这个方法已经能领会了直接上图在解释 我得微信 17625089935 欢迎添加
//获取url
var url = decodeURI(location.href);
//将url中?号之后的数据截取出来 因为url中?号之后的参数都是用&拼接 所以我们使用split方法根据&拆分并组装成数组
// 此时的 下标0的数据是 id=22 下标1的数据是 status=1
var dataStr = url.substring(url.indexOf("?") + 1, url.length).split("&");
//定义一个对象
var dataURL = {};
for (var i = 0; i < dataStr.length; i++) {
//使用data[对象属性]=value 给data对象进行赋值
//对象属性 就根据我们差分好的dataStr再次根据=号进行截取 =号之前的id作为对象属性 =号之后的作为value
// toLowerCase()是将 对象属性 里面的字符转换成小写
dataURL[dataStr[i].substring(0, dataStr[i].indexOf("=")).toLowerCase()] = dataStr[i].substring(dataStr[i].indexOf("=") + 1);
}
//然后我们使用data["id"]或者data.id/data.status就可以获取到值了
$("#id").val(dataURL["id"]);
//==================下面是我不太懂的时候做的备份防止以后遇到不会,现在也不需要看了=================
这是index页面 中的点击事件方法 准备跳转到model_xxxx-list.html的页面,传的id
function model_xxxx_list(obj,id){
window.location.href="xxxx/model-xxxx-list.html?modelID=" + id;
}
这是model_xxxx-list.html页面中 准备获取index页面传过来的参数
- 首先获取url
- 然后创建paraString 这应该是个数组 将url中的参数,按照顺序存进去
- 然后创建paraObj 这应该是个集合
- 然后循环遍历这个数组,根据 参数 有多少 就 循环多少次
- j.substring(0, j.indexOf("=")).toLowerCase() 这一段代码应该是获取url中 = 号前面的参数 也就是modelID,至于后面为什么用小写的modelid获取,是因为toLowerCase()它会自动将大写转换成小写 ,总之目的只有一个就是将 = 号前面的参数作为key,
- j.substring(j.indexOf("=") + 1, j.length) 这个毋庸置疑的就是获取=号后面的参数了
- 最后将获取的参数 赋值 给定义好的key的集合中去 这样就可以根据key获取你想要的值了
- 最后一步用三元运算符,如果undifind(没有找到)就赋值空的 “”,有值就根据key获取 paraObj["modelid"]
//获取modelid
var url = decodeURI(location.href);
var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
var paraObj = { };
for (i = 0; j = paraString[i]; i++) {
paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
}
var modelId2=(typeof (paraObj["modelid"]) == "undefined")?"":paraObj["modelid"];