如何通过url解析数据并使用javascript检索

时间:2014-02-21 09:44:38

标签: javascript jquery html

我浏览了sb代码并希望实现类似的代码。他用过:

  htmlItems += '<li><a href="show-feed.html?url=' + items[i].url + '">' + 
  items[i].name + '</a></li>';

并使用此javascript代码来检索网址并解析方法

.on('pageinit', '#show-feed-page', function () {
        var url = this.getAttribute('data-url').replace(/(.*?)url=/g, '');
        Application.initShowFeedPage(url);

它运行良好,我想解析方法的三个值,例如 <a href="showProduct.html?code='+ items[i].code +',name='+items[i].name+',price='+items[i].price+'">",需要代码来检索和解析方法

initShowProductPage(code,name,price);

1 个答案:

答案 0 :(得分:2)

首先,你的html是错误的,你必须准备正确的查询字符串格式,更新的html标记是:

    <a href="showProduct.html?code='+ items[i].code +
      '&name='+items[i].name+'&price='+items[i].price+'">"

您必须访问window.location.href并为查询字符串参数解析它。您可以编写一个解析网址的方法,如下所示:

 function parseURL() {
       var vars = [];
       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;
}

然后,您可以使用codenameprice参数访问它们,如下所示:

.on('pageinit', '#show-feed-page', function () {
      var hashObj = parseURL();
      // To get code
      var code =  hashObj["code"];

      // To get name
      var name = hashObj["name"];

      // To get price
      var price = hashObj["price"];

      // Now call the method
      initShowProductPage(code,name,price);

});