Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
jQuery.html(),.append()不';无法处理多行标记_Jquery_Html - Fatal编程技术网

jQuery.html(),.append()不';无法处理多行标记

jQuery.html(),.append()不';无法处理多行标记,jquery,html,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-vvvgdww

我一直在尝试使用.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函数要求标记在一行中,或者在每一个新行字符后使用“\”转义


有人知道解决这个问题的方法吗?

如果这是真的(尽管我很难想象),你可以使用
replace
方法将
\n
\r
替换为空字符串空格。

如果这是真的(尽管我很难想象它是真的),您可以使用
replace
方法将
\n
\r
替换为空格中的空字符串。

解决问题了吗?如果没有,请纠正我。

你的问题解决了吗?如果没有,请更正。

我已经用jquery 1.5运行了以下测试,它对我来说运行良好

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

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

酒吧

$('.'两').html($('.'一').html());

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

我已经用jquery 1.5运行了以下测试,它对我来说运行良好

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

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

酒吧

$('.'两').html($('.'一').html());

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

请将代码添加到答案中;你不应该强迫我们去别的地方看看你的实际解决方案。顺便说一句,你的字符串没有包含任何换行符…你所展示的是跨多行串接的字符串。最后一个字符串中没有换行符。OP询问当字符串包含换行符时如何将html附加到DOM。OP还提到他不控制HTML,因此分配也不是问题。+1 JSFiddle.net是展示原型解决方案的一个很好的工具,我相信这是一个广泛使用和接受的答案,就我个人而言,我宁愿看到工作原型,这是一个点击距离,而不是必须建立它自己复制代码请添加您的代码到您的答案;你不应该强迫我们去别的地方看看你的实际解决方案。顺便说一句,你的字符串没有包含任何换行符…你所展示的是跨多行串接的字符串。最后一个字符串中没有换行符。OP询问当字符串包含换行符时如何将html附加到DOM。OP还提到他不控制HTML,因此分配也不是问题。+1 JSFiddle.net是展示原型解决方案的一个很好的工具,我相信这是一个广泛使用和接受的答案,就我个人而言,我宁愿看到一个只需点击一下就可以工作的原型,也不愿意自己通过复制代码来构建它。如果您包含了您试图使用的jQuery代码,那么回答您的问题就更容易了。实际上,我试图解析ajax响应的错误部分。因此问题就来了。.html()函数工作得很好。如果包含您试图使用的jQuery代码,那么回答您的问题会更容易。实际上,我试图解析ajax响应的错误部分。因此问题就来了。.html()函数工作正常。+1尽管我将替换为空格,因为换行符自然显示为空格。+1尽管我将替换为空格,因为换行符自然显示为空格。
foo\nbar