onclick事件传递变量参数&拼接字符串

参考:https://blog.csdn.net/qq_37212970/article/details/96438987


  • 报错:jsonObj is not defined at HTMLInputElement.onclick


  • 源代码:拼接html

    html +=
    "<td><input type='submit' id='checkTutorInfoBtn' value='查看详情' onclick='checkTutor(jsonObj[i].tutorNo)'></td>";

  • 解决:

    字符串拼接问题

    checkTutor()内第一个转义双引号表示checkTutor函数引用参数,第二个双引号和开头<td>前双引号为一对;然后加参数;后面第一个双引号表示开始字符串,第二个双引号为checkTutor函数结束引参。

    html+=
    "<td><input type='submit' id='checkTutorInfoBtn' value='查看详情' onclick='checkTutor(\""+jsonObj[i].tutorNo+"\")';></td>";

    • 输出html是这样的
    <td><input type='submit' id='checkTutorInfoBtn' value='查看详情' onclick='checkTutor("20170000")';>

  • 多参

    • 错误写法,被当做一个参数了

      "<td><input type='submit' value='申请导师'  onclick='applyTutor(\"" + jsonObj[i].surplusQuota + "," + jsonObj[i].tutorNo + "," + jsonObj[i].tutorName + "\")';></td>"

    • 正确写法

      "<td><input type='submit' value='申请导师'  onclick='applyTutor(\"" + jsonObj[i].surplusQuota + "\",\"" + jsonObj[i].tutorNo + "\",\"" + jsonObj[i].tutorName + "\")';></td>" +