Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JavaScript变量(包含包含标记的stmt)插入<;脚本>;_Javascript_Html - Fatal编程技术网

将JavaScript变量(包含包含标记的stmt)插入<;脚本>;

将JavaScript变量(包含包含标记的stmt)插入<;脚本>;,javascript,html,Javascript,Html,我正在动态地构建一个脚本(这就是为什么它最终会变成一个var),但我已经简化了这个示例。我遇到的问题是浏览器将脚本中的span标记解释为实际的span,而不是脚本的一部分。我已经看过了关于转义字符和html编码/解码的各种资源,但是这些不是相关的问题,或者我不明白 如何在动态生成的脚本中写入span,以便浏览器将其解释为脚本的一部分,而不是它应该呈现的span标记 page.html文件 我还读到jQuery的html()正在解码,这就是我尝试append()、text()和appendChil

我正在动态地构建一个脚本(这就是为什么它最终会变成一个var),但我已经简化了这个示例。我遇到的问题是浏览器将脚本中的span标记解释为实际的span,而不是脚本的一部分。我已经看过了关于转义字符和html编码/解码的各种资源,但是这些不是相关的问题,或者我不明白

如何在动态生成的脚本中写入span,以便浏览器将其解释为脚本的一部分,而不是它应该呈现的span标记

page.html文件 我还读到jQuery的html()正在解码,这就是我尝试append()、text()和appendChild()的原因

后果

请看以下内容:谢谢你,菲利克斯,但我没有看到(或理解)你的建议与我在文章的变体部分添加的内容有任何不同,我已经尝试了,但又尝试了。那么,你是否真的尝试了
“\\x3cspan class=\x22所需字段指示符\x22\\x3ererequired\\x3c/span\\x3e”
,这就成功了!你能告诉我为什么我需要对尖括号进行编码和反斜杠转义吗?(实际上,我对双引号进行了转义,因为它们位于双引号内:
“\\x3cspan class=\\x22required field indicator\\x22\\x3ererequired\\x3c/span\\x3e”
),因为您是通过JavaScript创建JavaScript源代码的。您确实想要创建字符序列
\x3c
。但是,如果您简单地将其放在字符串文字中,它将转换为

<script>
    $(document).ready(function () {
        var formScript = '    $(document).on("ready", function () {';
        formScript += $().BuildScript();
        $("script#dynamic-script").append(formScript + '});');
    });
</script>

<script id="dynamic-script"></script>
(function ($) {

    $.fn.BuildScript = function () {

        var stmtsToAdd = '';

        stmtsToAdd += '$("#X").on("change", function () {' +
            '   if ($(this).val() == "1" && !$("#label-and-control_Y").is(":visible")) {' +
            '       $("#label-and-control_Y").show("fast");' +
            '       $("#control_Y").addClass("required");' +
            '       $("#control_Y").closest("div.control").prev().empty.append("<span class=&quot;required-field-indicator&quot;>");' +
            '   }' +
            '});';

        return stmtsToAdd;
    }

})(jQuery);
"\u003cspan class=\\u0022required-field-indicator\\u0022\u003eRequired\u003c\/span\u003e"

"\x3cspan class=\x22required-field-indicator\x22\x3eRequired\x3c/span\x3e"