JavaScript中引号的多重嵌套
web JavaScript 2018-09-26 2386 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6415516 2611 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

JavaScript的引号嵌套时单引号和双引号是交替使用的,但是到第三层就会出现解析错误如:

'<a href="javascript: do('something');">'

这种用情况下something前的单引号会成为整个字符串的结束,解决方式:

'<a href="javascript: do(\'something\');">'转义单引号即可。

但是转义时不可用双引号:

'<a href="javascript: do(\"something\");">'

这样的话解析时,something前的双引号会被作为href属性的结束。

所以转义时也必须交替进行。

另外也可以把引号用HTML代码来代替引号


当然最好的方式是避免使用多重嵌套

function doSth(){

do("something");

}

'<a href="javascript: doSth();">'


 

实际自己遇到时的解决办法:

'<div class="zoomMask" style="position:absolute; background:url(\'image/mask.png\') repeat scroll 0 0 transparent; cursor:move; z-index:1;"></div>'

就是把url中的单引号加上转译符号,但要注意最外面要为单引号。



根据以上内容实现自己的代码


<script>
$(function () {	
	var answerId = 1;
	var id = 2;
	var html = [];
	html.push("<span class='good good_appr_"+id+"' title='赞' onclick='postDiggFaq_appr(\'good\',\'"+answerId+"\',\'"+id+"\')'><i></i><em>0</em></span>");
	$(".faq_appr_"+answerId).html(html.join(''));
});
</script>
<div class="faq_appr_1"></div>

重点:以上代码是错的,输出的html代码是

<span class="good good_appr_2" title="赞" onclick="postDiggFaqAppr(" good','1','2')'=""><i></i><em>0</em></span>

这部分onclick="postDiggFaqAppr(" good','1','2')'=""是错误的

改进代码

<script>
$(function () {	
	var answerId = 1;
	var id = 2;
	var html = [];
	html.push("<span class='good good_appr_"+id+"' title='赞' onclick='postDiggFaqAppr(\"good\",\""+answerId+"\",\""+id+"\")'><i></i><em>0</em></span>");
	$(".faq_appr_"+answerId).html(html.join(''));
});
</script>
<div class="faq_appr_1"></div>
输出结果

<span class="good good_appr_2" title="赞" onclick="postDiggFaqAppr(&quot;good&quot;,&quot;1&quot;,&quot;2&quot;)"><i></i><em>0</em></span>

是正确的

转义单引号还是双引号,是根据最外层的引号决定的,与最外层引号保持一致就行

同理,我们把最外层双引号变成单引号测试一下

<script>
$(function () {	
	var answerId = 1;
	var id = 2;
	var html = [];
	html.push('<span class="good good_appr_'+id+'" title="赞" onclick="postDiggFaqAppr(\'good\',\''+answerId+'\',\''+id+'\')"><i></i><em>0</em></span>');
	$(".faq_appr_"+answerId).html(html.join(''));
});
</script>
<div class="faq_appr_1"></div>
输出结果<span class="good good_appr_2" title="赞" onclick="postDiggFaqAppr('good','1','2')"><i></i><em>0</em></span>

也是正确的

版权声明:本篇文章来源于网络。 来源链接

相关推荐
return和return false的区别
JavaScript | 2020-08-26 18798
1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交 2. return false,事件处理函数会取消事件,不再继续向下执行。比如表单将终止提交。 <script> function validateForm(){ var username...
console.log怎样输出换行
JavaScript | 2020-04-17 13629
两个console.log()之间默认是换行的,不用单独处理,如果想输出换行,可以用 console.log( '\n' ); 其他内容 如果同时打印数字和字符串,并且数字在前,打印字符串会添加引号显示。 console.log('test',1) ==》test 1 console.log(1,'test') ...
评论:0条
评论加载中...
发表评论