1
<li class=<%= @page_name == "home" ? "active span2" : "span2" %>>

变成:

<li class="active" span2>

当语句评估为真时。

我的预期结果是:

<li class="active span2">

任何想法为什么会发生这种情况?

4

2 回答 2

3

你的语句的输出实际上是

<li class=active span2>

大多数浏览器会将其转换为您的输出,以纠正无效标记。

你会希望它以这种方式呈现:

<li class="<%= @page_name == "home" ? "active span2" : "span2" %>">
于 2013-06-14T00:08:21.667 回答
3

标签中的引号本质上是将其中的内容声明为String对象。该语句的输出是一个字符串,但该字符串不会被封装在引号中。为了使标记有效,类属性的值必须用引号引起来。随后,您需要将整个语句括在双引号中:

<li class="<%= @page_name == 'home' ? 'active span2' : 'span2' %>">
于 2013-06-14T00:08:29.153 回答