jQuery .html(),. append()不适用于多行标记

时间:2011-02-18 13:48:22

标签: jquery html

我试图让.html()或.append()函数通过ajax调用呈现从第三方插件返回的标记。

ajax响应(回复正常)看起来像是:

<div>
        <!-- Start Third Party Markup -->       
            <div>
                <img id="Img1" usemap="#dnc_map_43" src="charts/solution_id_6/dnc-vvvgdwwl.png?634336319915542170" style="height:294px;width:628px;border-width:0px;" />
                        <map name="dnc_map_43" id="Map1"> 
                        <area shape="poly" coords="0,274,628,274,628,294,0,294" href="http://www.dotnetcharting.com" alt="Visit .netCHARTING for licensing options and more information." title="Visit .netCHARTING for licensing options and more information." />
                        <area shape="poly" coords="381,26,616,26,616,56,381,56" href="http://www.dotnetcharting.com" alt="Visit .netCHARTING for licensing options and more information." title="Visit .netCHARTING for licensing options and more information." />
                    </map>
            </div>
        <!-- End Third Party Markup -->  
</div>

但是我们无法控制格式化第三方标记的方式,并且我发现(在整个上午撕掉我的头发之后).html()或.append()jQuery函数需要标记为在任一行中,或在每个新行字符后使用“\”进行转义。

有没有人知道解决这个问题?

3 个答案:

答案 0 :(得分:5)

如果确实如此(尽管我很难想象),您可以使用replace方法将\n\r替换为空字符串一个空间。

答案 1 :(得分:0)

剂量this解决了您的问题?如果没有,请纠正我。

答案 2 :(得分:0)

我使用jquery 1.5运行以下测试,它对我来说很好。

<div id="one">
    <P>foo</p>
    <p>bar</p>
</div>
<div id="two"></div>

$('#two').html( $('#one').html() );

第二个div正确地填充了第一个div的多行标记。