1、window.location可简写为location.
2、getSearchAsArray方法为解析location字串。即将字符串传递的名-值对(按传统的name1=value1&name2=value2)转换到一个索引名是名字的数组。
参数为window.location字串。
其中escape()函数将数据转换成url适用的格式,特别是当内容包含空格时。
网上还有另一种方法来解析location,即正则表达式,大家有兴趣可以搜索一下。
3、location具体可以容纳的字串长度,是否和地址栏的长度相同,有兴趣的朋友可以测一下。
//======================以下是页面源码=======================
第一个页面index.html代码如下:
<HTML>
<HEAD>
<TITLE>window.search test </TITLE>
</HEAD>
<BODY>
<INPUT TYPE="button" onClick="doclick()">
<SCRIPT LANGUAGE="JavaScript">
<!--
function doclick()
{
location="test.html?a=1&b=2&c=3"
}
//-->
</SCRIPT>
</BODY>
</HTML>
第二个页面test.html
<HTML>
<HEAD>
<TITLE>test.html </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var srchStr=location.search
load()
function load()
{
if(srchStr)
{
var srchArray=getSearchAsArray(srchStr)
alert(srchArray["a"])
alert(srchArray["b"])
alert(srchArray["c"])
}
}
function getSearchAsArray(srchStr)
{
var results=new Array()
var input=unescape(srchStr.substr(1))
if(input)
{
var srchArray=input.split("&")
var tempArray=new Array()
for(var i=0i<srchArray.lengthi++)
{
tempArray=srchArray[i].split("=")
results[tempArray[0]]=tempArray[1]
}
}
return results
}
//-->
</SCRIPT>
</BODY>
</HTML>
这是接收普通参数,数组应该差不多,只是思想,你看看吧
angularjs中的this与$scope的作用基本一样。所以,并不能像在jq或者js中那样传递。
得想其它办法。
如果是循环,如果考虑把$index传递到控制器中去,模版中每个循环加个变量:"test{{$index}}",然后控制器中通过控制test+$index这个变量的值来达到控制对应dom元素的目的。
用拼接字符串的方式构建html,只能拼接字符串,对象是没办法拼接的。如果row是数字或字符串,则拼接结果为
lookCard(1) 或 lookCard(a)
如果row是对象,则拼接结果为
lookCard([object Object])
这里[object Object]会引起 Uncaught SyntaxError: Unexpected identifier
ps:上面的lookCard(a)也会引起错误,正确方法还要给字符串类型添加引号,即lookCard("a")
解决方法:
(1)将row转换成json,拼接进去,后面在函数里面再转换回来。
(2)拆开row,把row的多个属性逐一作为参数传递给函数。
(3)保存row为全局,传递row的凭证给函数,函数拿着凭证去全局取row对象。