javascript - 如何使用 jQuery 将行号添加到代码块?

标签 javascript jquery formatting

如果我有以下 HTML 标记:

<div class="code">
<pre>
      int i = 1;
      int j = 2;
</pre>
</div>

我想使用 jQuery 将其变成这样:

<table>
<tr><td>1</td><td><code>   int i = 1</code></td></tr>
<tr><td>2</td><td><code>   int j = 2</code></td></tr>
</table>

我目前正在使用 SyntaxHighlighter,但这对于我的简单需求来说似乎太复杂了。

我怎样才能简单地做到这一点?

最佳答案

您可能会使用插件,但您也可以非常轻松地构建一个简单的解决方案:

$('pre').html('<table>'+$.map($('pre').text().split('\n'), function(t, i){
    return '<tr><td>'+(i+1)+'</td><td><code>'+t+'</code></td></tr>';
}).join('')+'</table>');​

demonstration


而不是将每一行包装在 <code> 中元素,我更喜欢使用 CSS :

JavaScript:

$('pre').html('<table>'+$.map($('pre').text().split('\n'), function(t, i){
    return '<tr><td>'+(i+1)+'</td><td>'+t+'</td></tr>';
}).join('')+'</table>');​

CSS:

pre table {
    font-family : courier;
    padding: 2px;
}
pre table td:first-child {
    color:#777;
    border-right: 1px solid #ccc;
}

Demonstration

关于javascript - 如何使用 jQuery 将行号添加到代码块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12733647/

相关文章:

javascript - 如何获取将数据提供给 div 的样式的值? [MyShop电子商务]

python - python 去掉字符串中的引号

仅 Git 名称和模式

javascript - 单击按钮时添加输入类型

javascript - 向元素添加隐藏类,但事件除外

javascript - 如何在 Firefox 和 Chrome 中触发复选框的 onfocus 事件

javascript - 如何检查不是基于类型而是基于模板名称的 jointJS 元素

javascript - Bootstrap 旋转木马不居中

javascript - setTimeout 给出 'result of expression is not a function' 错误

PHP excel 在一个单元格中