【问题标题】:HTML option value with forward slash带有正斜杠的 HTML 选项值
【发布时间】:2012-03-29 19:38:38
【问题描述】:

我在通过 JavaScript 生成 HTML 选择的选项时遇到问题。

有几种方法可以向select 添加选项,例如:

var cbo_Options = document.getElementById("cbo_Options");
cbo_Options.options[cbo_Options.options.length] = new Option("text", "value", false, false);

<select id="cbo_Options"></select>

此脚本将生成到:

<select>
...
<OPTION value="value">text</OPTION>
...
</select>

这是应该的,但是在 Internet Explorer (8 & 9) 上运行时,引号消失了。如果值的内容以空格(“”)或“”开头,那么引号就会出现。我不知道为什么,但在 Chrome 上总是有引号。

所以问题来了,当“值”以正斜杠(“/”)结尾时,上面的 sn-p 变为:

<select>
...
<OPTION value=value/>text</OPTION>
...
</select>

并且 OPTION 标签在 value 属性之后关闭。

我尝试将“/”替换为“/”但没有成功。

有什么问题吗?有没有办法解决这个问题?

【问题讨论】:

    标签: option quotes forward slash


    【解决方案1】:

    您应该使用以下代码为您的选择标签添加一个选项

        var cbo_Options = document.getElementById("cbo_Options");
        var newOption = document.createElement("option");
        newOption.value = "val";
        newOption.text = "text";
        cbo_Options.options[cbo_Options.length] = newOption;
    

    【讨论】:

    • 感谢您的回复 Brij。我也尝试了你的建议,但外部 HTML 仍然是 &lt;OPTION value=val&gt;text&lt;/OPTION&gt;
    • 您必须检查 DOM。如果您使用 DOM Inspector(如 DebugBar)查看源代码,它不会为属性值显示任何引号 (")。因此您不必担心。您可以通过验证具有属性的 html 标记来检查这一点。
    • 但它确实会影响option 标签。我认为这可能是 Internet Explorer 的行为,因为在 Chrome 中,标签渲染得很好。我找不到 IE 的解决方案,但在值之前添加一个空格是让引号返回的唯一方法。我必须在接下来的步骤中处理该值。不管怎样,谢谢你的帮助,Brij。 :)
    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多