/**
* 获取地址栏内容,返回pathnamearrneed对象
* @param {Object} len 从第几位开始获取你需要的值
* @param {Boolean} true 返回的是截取后的数组
*/
function myLocationId(len,boolean) {
var pathnamearr = location.pathname.split('/');
var length = pathnamearr.length;
pathnamearr[length - 1] = pathnamearr[length - 1].replace('.html', '');
if(boolean){
return pathnamearr;
}
len = len ? len : 3;
var pathnamearrneed = {};
for(var i = len, arrlenght = length; i < arrlenght; i += 2) {
pathnamearrneed[pathnamearr[i]] = pathnamearr[i + 1];
}
return pathnamearrneed;
}

  不知道有没有宝宝们遇到过这样的问题,后台哥哥说使用 http://域名/网页路径.html?id=1&&cid=1 使用search的地址形式太丑了,要改成 http://域名/网页路径/id/1.html 的形式。

  这时候,宝宝需要用到网页路径传过来的信息,例如 id 什么的,就特别费神,所以就写了个这样的方法,来解析网址,获取需要的内容。

  下面写一下这个函数的意思,以及如何使用:

    1、宝宝在自家公司遇到需要解析的网站路径是这样的  http://域名/网页父级路径/网页子级路径/一级分类/一级分类id/二级分类/二级分类id.html

    2、而宝宝我需要用到的内容是 一级分类id 和 二级分类id ,这时候我们所熟知的 location对象的属性就不能满足需求了,就需要自己进行解析

    3、使用 location.pathname 获取的内容是 /一级分类/一级分类id/二级分类/二级分类id.html

    4、通过 split('/') 将其分隔成数组,结果为 ['','一级分类','一级分类id’,'二级分类','二级分类id.html']

    5、说道这里我想看到宝宝博客的童靴们都明白了吧,该方法需要传参的 length 就代表着 我需要的是 从数组第几项开始是我需要的内容,因为宝宝自家公司一般都是从第三项开始,所以不传的话 默认是从第三位开始

    6、最终得到的结果是一个对象

        {

          '一级分类':'一级分类id',

          '二级分类':'二级分类id'

        }

修改1:

  增加第二个参数,当传入 true 时 返回的是路径内容数组。

ps:这是本宝宝的第一篇博客,也是记录自己的成长历程,如果有更好的办法来解决这个问题,欢迎交流.....康撒米达~~古玛我~~

js解析网址获取需要的数据的更多相关文章

  1. Atitit  项目界面h5化静态html化计划---vue.js 把ajax获取到的数据 绑定到表格控件 v2 r33.docx

    Atitit  项目界面h5化静态html化计划---vue.js 把ajax获取到的数据 绑定到表格控件 v2 r33.docx 1. 场景:应用在项目列表查询场景下1 1.1. 预计初步掌握vue ...

  2. js解析php返回的json数据无法获取length的问题分析

    1.问题出现的过程,js解析php json_encode 的数据,无法获取长度信息,提示undefined   debug:       首先打印查看了php encode后的数据,返现最外层是一个 ...

  3. js解析xml,获取XMl标签属性值

    <script type="text/javascript"> var xml="<?xml version=\"1.0\" enc ...

  4. Jmeter4.0 _Beanshell解析并获取json响应数据数组长度

    我们在做jmeter接口测试的时候,有时候碰到开发没返回数据total,只返回了一条条记录,可是呢,我们又需要知道到底返回了多少条数据时,咋办呢?咋办呢?咋办呢? 不要急,接下来,让我们见证奇迹是如何 ...

  5. JS遍历表格获取每行数据及每个单元格数据

    /** * 遍历表格获取每行数据及每个单元格数据 * @param tableID 表格ID */ function GetTable(tableID) { var milasUrl = {};//新 ...

  6. js解析或获取页面路径归纳

    /** * 当填写参数href后,解析你给的参数,如果为空自动从获取浏览器的地址 *测试路径:>>>http://127.0.0.1:8020/url/index.html?id=1 ...

  7. js子页面获取父页面数据

    做页面预览的时候,数据没有存入数据库,但是要打开一个页面进行预览,询问众大婶,原来是这样来做. 1.父页面 <input type="text" id="name& ...

  8. js解析网络中的json数据

    <?php echo <<<_END <html> <head> </head> <body> <div id=" ...

  9. ABP JS调用接口 获取返回的数据

    var _userService = abp.services.app.user; console.log(abp.services.app.user); _userService.getUserBy ...

随机推荐

  1. C#面向编程的三大特征

    在面向对象的编程中,首先要清楚地理解面向对象编程的三个基本特征: 封装, 继承, 多态! 1.封装 更确切地说,是对象封装.就是每个对象都包含自己进行某种操作时所需要的所有信息,而不依赖于其他对象来完 ...

  2. 转:django 接收页面form的post数组

    <input type="text" name="input[]"> <input type="text" name=&q ...

  3. Oracle安装错误“程序异常终止

    Oracle安装错误"程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部   "程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部门:" ...

  4. Linux 文件操作监控inotify功能及实现原理【转】

    转自:http://blog.chinaunix.net/uid-26585427-id-5012973.html 1. inotify主要功能 它是一个内核用于通知用户空间程序文件系统变化的机制. ...

  5. HDU 4292:Food(最大流)

    http://acm.hdu.edu.cn/showproblem.php?pid=4292 题意:和奶牛一题差不多,只不过每种食物可以有多种. 思路:因为食物多种,所以源点和汇点的容量要改下.还有D ...

  6. kafka入门教程链接

    http://www.aboutyun.com/forum.php?mod=viewthread&tid=12882 经典入门教程 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创 ...

  7. C语言----------链表的简单操作

    #include <stdio.h> #include <malloc.h> typedef struct node{ //定义节点类型 char data; //数据域 st ...

  8. Linux Shell基础知识

    一.文件系统和安全 chmod命令 chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限:另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限. 符号模式 chm ...

  9. 开发工具&环境

    远程拷贝:scp cdh4.tar.gz root@10.239.44.111 ~ gerrit for code review: git add . git commit -a git push o ...

  10. UVA 11520 填充正方形

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...