html中写js代码:
正常写法(一般情况下):
<input value="" type="button" οnclick="alert('OK');" />
其实更好的写法:
<input value="Test" type="button" οnclick="alert("OK");" />
因为此时仍是在html管辖范围内的,所以"会被解析为双引号
js中写html代码:
function addarow(){
var trnum = $("#table_1_id tr").length;
var trid ="n"+trnum;
var tr="<tr id="+trid+"><td><input type='button' οnclick='console.log('"+trid+"')' value='查看该行id'></td></tr>";
$("#table_1_id").append(tr);
}
这点代码相信大家也都看得懂.
在table中新加一行该行id为 字母n加上总行数 如 n1 (n可以用来区分是否是新加的行)
然后添加一个按钮,点击时在控制台打印出该新行的id
但是这样写是不对的!!!会报Uncaught SyntaxError: Unexpected token } 的错误
是因为onclick事件是 console.log( 只能解析到第二个单引号号并把它作为结束标志
如果写成
var tr="<tr id="+trid+"><td><input type='button' οnclick='console.log("+trid+")' value='查看该行id'></td></tr>";
能不能达到想要的效果呢?试下就知道了 结果为:我就不打了直接贴图吧
但是我真的想获取新行id该如何处理?总会有解决办法的
var tr="<tr id="+trid+"><td><input type='button' οnclick='console.log(""+trid+"")' value='查看该行id'></td></tr>";
这样就可以了因为新行添加到html后其实就是上面那张图的内容,如果加了"的话就会变成 console.log("n1") 被html解析为 console.log("n1")这样就可以正常获取新行的id了。
还有一种方法就是外部不使用引号
var tr="<tr id="+trid+"><td><input type='button' οnclick=console.log('"+trid+"') value='查看该行id'></td></tr>";