首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用javascript从<pre></pre>‘中删除`<code></code>’?

如何用javascript从<pre></pre>‘中删除`<code></code>’?
EN

Stack Overflow用户
提问于 2016-01-21 15:18:50
回答 2查看 366关注 0票数 0

减价渲染中的三重回标呈现为<pre><code class="...">...</code></pre>。更确切地说,

代码语言:javascript
复制
# in markdown
```java
代码语言:javascript
复制
# render as 
<pre>
<code class="java">
...
</code>
</pre>

# my expecting result (for Google code prettify):
<pre class="prettyprint linenums lang-java">
...
</pre>

我目前的解决方案是添加以下代码,但它不起作用。

代码语言:javascript
复制
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js?skin=son-of-obsidian></script>

 <script type="text/javascript">
 jQuery(document).ready(function () {
     $('pre code').each(function() {
         var code = $(this).html();
         var lang = $(this).attr('class');
         if (lang) {
             $(this).parent().attr('class', 'prettyprint linenums lang-'+lang).html(code);
         }
     });
     prettyPrint();
 });
 </script>

如何删除<code class="...">...</code>

我使用SyntaxHighlighter <pre class="brush: java">...</pre>WordPress + Windows Live Writer +PreCode(基于SyntaxHighlighter)中突出我的代码块。

目前,我转向减价。要在标记中插入代码块,我使用

代码语言:javascript
复制
```java

代码在这里

代码语言:javascript
复制
# OR

<pre class="brush: java">
code here
</pre>

这两种方法对我都不起作用,因为SyntaxHighlighter要求<pre></pre>中所有左尖括号都应该转义。

因此,我安装谷歌代码美化,但遇到上述问题(不兼容)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-21 15:27:26

试一试下面的方法,让我知道这是否适合你。

代码语言:javascript
复制
$('pre').each(function() {
     var el = $(this).find('code');
     var code = el.html();
     var lang = el.attr('class');
     if (lang) {
         $(this).addClass('prettyprint linenums lang-' + lang).html(code);
     }
 });

JSFiddle演示

票数 1
EN

Stack Overflow用户

发布于 2016-01-21 15:38:44

您忘记从pre元素中删除原始代码对象,导致代码被重复。您应该调用$(this).remove();来删除旧代码对象。

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

https://stackoverflow.com/questions/34927511

复制
相关文章

相似问题

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