Jquery insertBefore插入文本而不是HTML

时间:2016-06-16 18:44:52

标签: javascript jquery

http://api.jquery.com/insertbefore/处的示例显示insertBefore将新HTML插入DOM

我的HTML结构如下:

        <div class="left line">
            <div class="steps" id="step1"></div>
        </div>
        <div class="left line">
            <div class="steps" id="step2"></div>
        </div>

我在文档准备就绪后调用它(注意我试图将文本包装在&#34;&#34;&#39;&#39;&#39;&#39;并得到相同的结果。代码运行在for loop并插入正确的位置。

        if (opts[i].payments1) {
            console.log("P1")
            $( "< div class = 'payment1'> < /div>" ).insertBefore( "#step" + i );

        }

当我运行代码时,我得到了这个

<div class="left line">
   &lt; div class = 'payment1'&gt; &lt; /div&gt;
  <div class="steps" id="step1" style="background-color: blue;"></div>
</div>

因此,在查看页面时,我得到了

&LT; div class =&#39; payment1&#39;&gt; &LT; / DIV&GT;

而不是div的格式

2 个答案:

答案 0 :(得分:2)

我认为jQuery并不喜欢你写<div....的方式。尝试

 $( "<div class='payment1'> </div>" ).insertBefore( $("#step" + i) );

摆脱空间。

答案 1 :(得分:0)

$("<div>").addClass("payment1").insertBefore( $("#step" + i) );