跨页面传递参数
这里有假如传递一个参数,在另一个页面接收时,只需要js中写入如下代码: localhost:8080/index.jsp?id=1
代码语言:javascript复制 function showWindowHref() {
var sHref = window.location.href;
var args = sHref.split('?');
if(args[0]==sHref){
return"";
}
var arr = args[1].split('=');
console.log(arr[1]);
这里我打印了一下传递的参数。
如果有多个参数,我们只需要先以&截取字符串,然后在以=截取。就能得到里面的参数了。
代码语言:javascript复制function showWindowHref(){
var sHref = window.location.href;//获取url
var args = sHref.split('?');//以?截取字符串
if(args[0]==sHref){//截取的前面的字符串和sHref相同,也就是没有参数
return "";
}
var arr = args[1].split('&');//以&符号截取
var obj={};//定义个对象
for(var i = 0;i< arr.length;i ){
var arg = arr[i].split('=');
obj[arg[0]] = arg[1];//=前面的是属性,也就是arg[0],=后面你的是值,一起放对象里
}
return obj;
}
var herf = showWindowHref();//执行函数
console.log(href['参数名']);//这里也可以使用obj.属性名
使用jquary的append,放原生html的连接字符串问题
代码语言:javascript复制 $(function () {
$.post("../showArticle.do",function (data) {
for(var i in data){
//console.log(data[i]);
var mode = data[i];
console.log(mode.id);
var tr = $("#tbody").append("<tr><tr>");
tr.append(" <td><input type='checkbox' class='input-control' name='checkbox[]' value='' /></td>");
tr.append("<td class='article-title'>" mode.title "</td>");
tr.append("<td>" mode.content "</td>");
tr.append("<td class='hidden-sm'>" mode.label "</td>");
tr.append("<td class='hidden-sm'>" i "</td>");
tr.append("<td>2015-12-03</td>");
tr.append('<td>'
'<a href="update-article.html?id=' mode.id ' ">修改</a>'
'<a rel="6">审核通过</a>'
'<a rel="7">审核不通过</a>'
'</td>');
}
},"json");
});
或者这样连接
代码语言:javascript复制function(){
var path = "/" location.pathname.split("/")[1];//获取项目名
$.get(path "/question/findList",{"currentPage":1,"pageSize":5},
function(data){
console.log(data);
//两个参数,第一个参数表示遍历的数组的下标,第二个参数表示下标对应的值
$.each(data,function(i,obj){
var message = "";
if(obj.auditStatus == 0){
message = "待审核";
}else if(obj.auditStatus == 1){
message = "审核通过";
}else{
message = "审核失败";
}
$("#tbody").append(
'<tr>'
'<td><input type="checkbox" class="input-control" name="checkbox[]" value="' obj.id '" /></td> '
'<td class="article-title">' obj.title '</td> '
'<td>' obj.category.name '</td> '
'<td class="hidden-sm">' obj.message '</td> '
'<td class="hidden-sm">' obj.replySet.length '</td> '
'<td>' message '</td> '
'<td>'
/*'<a href=' path '/question/findQuestion?id=' obj.id '>查看详情</a> ' */
'<a href=update-article.html?id=' obj.id '>查看详情</a> '
'<a rel="6">删除</a></td> '
'</tr>');
});
},"json");
});
接收的信息,获得参数
代码语言:javascript复制function GetQueryString(name)
{
var reg = new RegExp("(^|&)" name "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);//search,查询?后面的参数,并匹配正则
console.log(r);//?后面的一串
if(r!=null)
return unescape(r[2]);
return null;
}
$(function(){
var id = GetQueryString("id");//通过名字获取值
console.log(id);
console.log(location.pathname);//url
var path = "/" location.pathname.split("/")[1];// /加上项目名
$.get(path "#",{"id":id},function(data){
console.log(data);
$("#article-title").val(data.title);
$("textArea[name=describe]").html(data.message);
},"json");
});
总结
通过获取url的字符串,然后截取字符串,获取参数值。js里面没有map,对象就跟map差不多,里面也是key,value形式的,就是一个属性,一个值。需要存取多个参数值,为了提取方面,一般我们使用对象存取。