js中写html代码时引号问题

html中写js代码:

正常写法(一般情况下):

<input value="" type="button" οnclick="alert('OK');" />

其实更好的写法:

<input value="Test" type="button" οnclick="alert(&quot;OK&quot;);" />
因为此时仍是在html管辖范围内的,所以&quot;会被解析为双引号


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(&quot;"+trid+"&quot;)' value='查看该行id'></td></tr>";
这样就可以了因为新行添加到html后其实就是上面那张图的内容,如果加了&quot的话就会变成 console.log(&quot;n1&quot;) 被html解析为  console.log("n1")

这样就可以正常获取新行的id了。

还有一种方法就是外部不使用引号

var tr="<tr id="+trid+"><td><input type='button' οnclick=console.log('"+trid+"') value='查看该行id'></td></tr>";




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章