在昨天的开发中,帮同事看了个问题,一开始也把我给搞晕了,明明写的就是正确的string的 ‘+=’ 出来的内容就是缺少部分内容,一开始没有想到是三级运算符优先级的问题
在开始的时候,主要是在js中组织一段html,代码如下:
[C#] 纯文本查看 复制代码 var html = "";
html += " <span> " + show == 0 ? '是' : '否' + " </span>";
html += " <a href='#' data-id='" + id + "' class='btn btn-success' data-action='editShow'>" + show == 0 ? '不显示' : '显示' + "</a>";
$this.parent().html(html);
然后在页面一直不能正确的显示出这部分html,显示的是下面的内容:
[C#] 纯文本查看 复制代码 <td id="show" style="width: 10%;">否 显示</td>
一开始也在想是什么原因,查看了代码,也没有问题,就想着是不是三级运算符的优先级问题,就在使用三级运算符的地方,添加了‘()’将三级云算法放到一起进行处理,提高优先级,代码如下:
[C#] 纯文本查看 复制代码 var html = "";
html += " <span> " + (show == 0 ? '是' : '否') + " </span>";
html += " <a href='#' data-id='" + id + "' class='btn btn-success' data-action='editShow'>" + (show == 0 ? '不显示' : '显示') + "</a>";
$this.parent().html(html);
然后测试发现正确了,页面也正常显示了组织的html代码,如下所示:[C#] 纯文本查看 复制代码 <td id="show" style="width: 10%;"> <span> 否 </span> <a href="#" data-id="2" class="btn btn-success" data-action="editShow">显示</a></td>
三级运算符的优先级还是很重要的,以后还是要学习下,再总结帖子,总结内容,加油
|