这个one是个形参(形式参数),而 abc(this) 的this则是实参(实际参数),两者实际上是相同的,每次调用时abc后面的括号里放什么参数,函数里的one就等于这个参数。而this是每次点击时的a标签,因此one.getAttribute("href")实际上就是获取所点击的a标签的href属性。
参数是可以任意命名的,前提是必须符合js的命名规则(比如不能使用js的保留字)。
下面用个更简单点的例子帮助你理解:
function abc(x){ //这里把参数名设为x了,不是one了alert(x)
}
abc(1) //这里实参是1,那么函数里的形参x就是1
var a = 123
abc(a) //实参用变量也是一样意思的,这时候x就等于123了
<script>var span = document.getElementsByTagName("span")
for (var i = 0i <span.lengthi++) {
(function (i) {
span[i].addEventListener('click', function () {
var value = this.innerHTML
var math = document.getElementsByClassName("math")[0]
var mvalue = math.innerHTML
if (value == '+') {
mvalue++
math.innerHTML = mvalue
}
else if (value == '-') {
if (mvalue == '1') {
return
}
mvalue--
math.innerHTML = mvalue
}
})
})(i)
}
</script>
每次加1,给每个span标签添加点击事件,在里面判断点的是+还是-做后在赋值
浏览器之争,楼主试试不用上面的方法判断,你给radio和checkbox赋个id比如id="q01",不用form,因为要实现全浏览器的兼容,用document.getElementById("q01").checked==true来判断并加分,试试吧。给你一段实验代码。
<html>
<head>
<script language="javascript">
function chk()
{
var point = 0
if (document.getElementById("a1").checked == true)
{
point+=5
}
if (document.getElementById("b1").checked == true &&document.getElementById("b2").checked == true)
{
point+=5
}
alert("你的得分:" + point)}
</script>
</head>
<body>
第一题,选择A为正确答案
A.<input id="a1" type="checkbox" value="checkbox" />
B.<input id="a2" type="checkbox" value="checkbox" />
C.<input id="a3" type="checkbox" value="checkbox" />
D.<input id="a4" type="checkbox" value="checkbox" />
第二题,选择AB为正确答案
A.<input id="b1" type="checkbox" value="checkbox" />
B.<input id="b2" type="checkbox" value="checkbox" />
C.<input id="b3" type="checkbox" value="checkbox" />
D.<input id="b4" type="checkbox" value="checkbox" />
<input type="button" name="Submit" value="提交" onclick="chk()" />
</body>
</html>