背景:<a href=‘javascript:doDetail("+res[i][‘termType‘]+")‘>"+res[i][‘termType‘]+"</a>
一个链接,显式为 res[i][‘termType‘] 为返回结果的一个条目的一个字段,href是一个javascript方法
就是说点击会执行一个javascript方法,但是实际上方法时触发不了的,这里的语法有错误,错误找了很久终于知道了为什么不能触发这个方法,
以简单的例子来说明:
<html>
<body>
<script type="text/javascript">
function show(a)
{
alert(a);
}
</script>
<button onclick = show()>click me</button>
</body>
</html>
一个按钮,点击触发show()方法,javascript方法调用值看方法名
onclick = show():因为没有给a传值,弹 undefined
onclick = show(1) : 1传递给了a,弹 1
onclick = show(‘a‘) 此时传递给a的是a,弹a
onclick = show(a) 此时传递给a的是什么值呢,a在此处是一个变量,没有定义,这种情况会视为语法错误,无法触发方法
再看开头的语句<a href=‘javascript:doDetail("+res[i][‘termType‘]+")‘>"+res[i][‘termType‘]+"</a>
其实跟show(a)是一种情况,我本来是要把 res[i][‘termType‘]作为一个常量传递给方法用 这种写法显然做不到
修改如下<a href=‘javascript:doDetail(/""+res[i][‘termType‘]+"/")‘>"+res[i][‘termType‘]+"</a>
show(1) 的情况下 是因为javascript语法中 数字就是一个常量