首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery .html()打印准确的html代码

JQuery .html()打印准确的html代码
EN

Stack Overflow用户
提问于 2011-02-11 19:19:20
回答 1查看 2.2K关注 0票数 2

我有一个文本区,我正在填充html代码,供人们从中剪切和粘贴。这个文本区域是使用JQuery和.html()“填充”的。"population“来自页面上其他地方的<div>示例:

“容纳”人口的Div

代码语言:javascript
复制
<div id="populationhold">this is the html to copy</div>

然后“魔术的JQ”到“点击”按钮并填充文本区

代码语言:javascript
复制
$('#button').click(function(){ 
updatefunction();
});

updatefunction有点像这样:

代码语言:javascript
复制
function updatefunction(){
$('#textarea').html( $('#populationhold').val(); });
}

现在,如果我尝试用这样的东西填充:

代码语言:javascript
复制
$('#textarea').html( 'this is the <br />html to copy');

.html()将只打印<br>,而不打印<br />。我已经尝试过(以我的方式用<br \/>转义,但这不起作用。请提供建议,因为我必须“生成”干净的XHTML代码,而不仅仅是HTML4代码。

下一步是prob。相同的,但有点复杂-因此上面引出了这一点。

作为my site的“用户”,您将能够在代码示例中添加/删除位:

代码语言:javascript
复制
<div id="populationhold">
<div class="codebit1">this is the <br />html to copy</div>
\n<br/>\
<div class="codebit2">this is more <br />html to copy</div>
</div>

$('#button').click(function(){ 
$('#textarea').html( $('#populationhold').val(); 
});

填充文本区域很好,可以正常工作,"90%“的删除也是如此。大概是这样的:

代码语言:javascript
复制
$('#deletebutton').click(function(){     
$('.codebit1').remove(); 
// This removes .codebit1 from #populationhold and runs the update to ummm update the textarea with the update function 
// Note: remove() is OK in this case as #codebit1 is totally dynamically created
updatefunction();
});

这里的问题是,我可以删除/删除需要删除的部分-因此是"90%“,但我如何摆脱”现在孤立的“\n<br/>\n,它过去用来分隔#textarea中的两个div。好吧,我可以在没有\n<br/>\n的情况下做到这一点,但它会让代码复制得“不整洁”,这就是\n<br/>\n存在的原因--而且\n<br/>\n确实确保了当代码被实际复制时,用户会得到一个合理的布局。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-11 19:38:14

我认为你所做的是不正确的。

<textarea>是一个多行输入对象。因此,您不希望使用$('#textarea').html()函数(我认为它甚至不存在于<textarea>中),但是您希望使用$('#textarea').val()函数来更新它的内容。

如果你使用$('#textarea').val( 'this is the <br />html to copy'),你会得到正确的结果。

另一方面,您确实希望对$('#populationhold')对象使用.html()而不是.val(),因为您要检索它的值及其子对象。

关于innerHTML和XHTML

XHTML和innerHTML不是朋友。他们只是不能在一起工作。如果您将文档作为xhtml/xml提供,那么您就有麻烦了。在XML中使用innerHTML是没有意义的。

代码语言:javascript
复制
<element>value
 <child>childvalue</child>
</element>

innerHTML只是一个函数,它获取元素的值,然后连接它的子元素的名称和值……这只是一些字符串操作。

半解决方案

Steve Tucker创建了一个innerXHTML函数。你可以在这里看到它的工作原理:

http://jsfiddle.net/pYUD4/10/

但是,有一件事可以将<br />转换为<br></br>,但就我而言,这就是有效的XHTML.我将尝试编写一个能很好地完成这项工作的函数,因为现在似乎没有办法做到这一点。但这可能需要一些时间,xD

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4968389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档