jq、js获取一个页面中的ajax数据,传到另一个页面显示(通过url传参方式)

做项目遇到了页面之间传输数据的问题,特别是第一个页面的数据是使用ajax显示的,当点击ajax中append的li的时候,打开另一个页面,将第一个页面的数据显示在另一个页面上,具体情况如下:

一、这是第一个页面中的js代码:
//显示所有该用户的歌单
function showMusicMenu(){
    var uid = $(".user").attr("id");//获取页面该行的id
    $.ajax({
         url: 'mm/getAllMusicMenuByUid.do?uid='+uid,
         type:'post',
         async: false,//设置为同步
         dataType:'json',
         success:function (r) {
            var mlist = r.mmlist;
            for (var i = 0; i < mlist.length; i++) {
                var time = timestampToTime(mlist[i].mm_time.time);
                //循环显示相应的音单
                 $(".mmenu").append("<li id='"+mlist[i].mm_id+"' onclick='jump(this)' >"+
                                        "<img src='img/index/lazy_load.png' alt='"+mlist[i].mm_name+"'  title='"+mlist[i].mm_name+"'/>"+
                                        "<div class='menuname'>"+mlist[i].mm_name+"</div>"+
                                        "<span class='jianjie' style='display:none;'>"+mlist[i].mm_summary+"</span>"+
                                        "<span class='ctime' style='display:none;'>"+time+"</span>"+
                                    "</li>");  
            }
            getmmimgBymm_id();//显示所有该用户的歌单上最新封面
         }
    });
}

单击li后实现跳转

function jump(e){

//取到该li的数据
    var mmid = $(e).attr("id");
    var img = $(e).find("img").attr("src");
    var name = $(e).find("img").attr("title");
    var time = $(e).find("span").eq(1).html();
    var jianjie = $(e).find("span").eq(0).html();
    //将数据拼接到这个页面的url中进行传参,跳转页面
     location.href='music_menu.jsp?mmid='+mmid+'&img=' + encodeURI(img)+'&name=' + encodeURI(name)+'&time=' + encodeURI(time)+'&jianjie=' + encodeURI(jianjie);

}

二、这是第二个页面的js数据,即跳转之后的页面数据


//获取url中的参数,这是一个获取url参数的方法
function GetRequest(){
    var url = location.search; //获取url中"?"符后的字串  
    var theRequest = new Object();  
    if (url.indexOf("?") != -1) {  
        var str = url.substr(1);  
        strs = str.split("&");  
        //截取&后循环
        for (var i = 0; i < strs.length; i++) {  
            theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);  //decodeURI()解决中文乱码
        }  
    }  
    return theRequest;

}

然后,通过上面那个方法,获取参数,并显示在页面上

//显示歌单列表
function showList(){
    var request = new Object();  
        request = GetRequest(); //取到传过来的数据
        var mmid = request['mmid'];  //歌单id
        var img = request['img'];  //图片地址
        var name = request['name'];  //歌单名称
        var time = request['time'];  //创建时间
        var jianjie = request['jianjie'];  //简介

        //显示歌单信息
      $(".music1_left a .m_1").attr("src",img);
      $(".music1_left ul li").eq(0).html(name);
      $(".music1_left ul li").eq(2).append(time);
      $(".music1_left ul li").eq(4).append(jianjie);

}

 

结束:这个方法虽然能显示数据出来,但是参数过多,url地址栏中就会有很长的一串参数显示,谁有更好的方法,那麻烦大家多多关照~

猜你喜欢

转载自blog.csdn.net/qq_38337245/article/details/85251732