0

我正在尝试在变量中连接 html。我能够成功地做到这一点而没有任何语法错误

htmlstr = "";
htmlstr += "<p>some paragraph";
htmlstr += "<p>another paragraph </p>";

$(list).html(htmlstr);

但是当我尝试这样做时

htmlstr = "";
htmlstr += "<button class="first"></button>";
htmlstr += "<button class="second"></button>";

$(list).html(htmlstr);

我收到一个错误“未捕获的语法错误:来自浏览器的意外标识符。我这样做是不是错误的方式?

4

7 回答 7

5

你的代码

 htmlstr += "<button class="first"></button>";
            ^ string       ^ var ^ string   ^    

在你的代码first中是variable这样你得到错误而不是string

正确的方法

 htmlstr += '<button class="first"></button>';
            ^                               ^  //changed to single quotes
 htmlstr += '<button class="second"></button>';
于 2013-09-26T15:48:53.420 回答
3

在您当前的代码中,引号终止了字符串文字。您需要切换或转义您的报价:

htmlstr += '<button class="first"></button>';

或者

htmlstr += "<button class=\"first\"></button>";
于 2013-09-26T15:49:56.113 回答
2

使用“+”连接变量和文本

htmlstr = "";
htmlstr += "<button class="+first+"></button>";
htmlstr += "<button class="+second+"></button>";
$(list).html(htmlstr);

或者,如果您没有变量,但有双引号和简单引号

htmlstr = "";
htmlstr += "<button class='first'></button>";
htmlstr += "<button class='second'></button>";
$(list).html(htmlstr);
于 2013-09-26T15:47:33.317 回答
2

而不是使用"属性'的值试试这个:

                htmlstr = "";
                htmlstr += "<button class='first'></button>";
                htmlstr += "<button class='second'></button>";
于 2013-09-26T15:48:37.817 回答
1

问题是您没有转义围绕类属性值的引号。我的建议是在字符串周围使用单引号来消除转义双引号的需要:

        htmlstr = '';
        htmlstr += '<button class="first"></button>';
        htmlstr += '<button class="second"></button>';

        $(list).html(htmlstr);
于 2013-09-26T15:50:09.470 回答
1

如果 first 和 second 是变量,那么您可以按照 Donovan Charpin 所说的那样做。但是,如果它是类的名称,您可以试试这个:

    htmlstr = "";
    htmlstr += "<button class='first'></button>";
    htmlstr += "<button class='second'></button";
    $(list).html(htmlstr);

没想到有人在这上面打了我一拳。

于 2013-09-26T15:50:47.557 回答
1
       htmlstr = "";
        htmlstr += "<button class='first'></button>";
        htmlstr += "<button class='second'></button>";

        $(list).html(htmlstr);

你不能"在里面使用"。改为使用'。第二个(嵌入的)"将被视为该字符串的结束标记,但事实并非如此。它是该字符串的一部分。所以只需使用替代方案(但同样有用)'

于 2013-09-26T15:48:47.470 回答