当前位置:  开发笔记 > 编程语言 > 正文

如何使用jQuery在代码标记内添加pre标记?

如何解决《如何使用jQuery在代码标记内添加pre标记?》经验,为你挑选了1个好方法。

我正在尝试使用jQuery格式化代码块,特别是在

标记内添加标记:

$(document).ready(function() {
   $("code").wrapInner("
");
});

Firefox正确应用格式,但IE将整个代码块放在一行上.如果我添加提醒

alert($("code").html());

我看到IE已在pre标签中插入了一些额外的文字:



如果我重新加载页面,jQuery后面的数字会改变.

如果我使用wrap()而不是wrapInner(),在

外面包装标签,IE和Firefox都能正确处理它.但是不应该在里面
工作吗? 

我更喜欢使用,wrapInner()因为我可以在

标签中添加一个CSS类来处理所有格式,但是如果我使用wrap(),我必须将
标签中的页面格式化CSS和标签中的文本/字体格式,或Firefox和IE都窒息了.这不是什么大不了的事,但我想尽量保持简单.

有人遇到过这种情况么?我错过了什么吗?



1> markpasc..:

这是块和内联元素之间的区别.pre是块级元素.将其放在code标签中是不合法的,标签只能包含内联内容.

因为浏览器必须支持他们可能在真实网络上找到的任何神奇标签汤,Firefox会尝试做你的意思.IE碰巧以不同的方式处理它,这很好的规范; 在这种情况下的行为是未指定的,因为它永远不会发生.

你能代替取代code与元素pre?(由于块/内联问题,从技术上说,只有当元素位于具有"流"内容的元素内时才能工作,但浏览器可能会做你想要的.)

code如果你想要pre的话,为什么它首先是一个元素呢?

您还可以使用CSS 为code元素pre的空白保留功能white-space: pre,但显然IE 6仅在严格模式下表示尊重.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有