js中写html代码时引号问题

13 篇文章 0 订阅
1 篇文章 0 订阅

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>";




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值