我试图使用jQuery创建一个非常简单的prettyprint函数,但我不知道如何找到元素、属性和值(在jsfiddle中显示)。
我正在尝试实现以下内容:
我正在尝试实现以下内容:
- 用
<span class="element" />
包装元素 - 用
<span class="attribute" />
包装属性 - 用
<span class="value" />
包装值 - 将
<
替换为<
- 将
>
替换为>
$(document).ready(function() {
$('pre.prettyprint').each(function() {
$(this).css('whitespace','pre-line');
/* Why isnt ^this^ working? */
var code = $(this).html();
// How should I define the following
var element = $(code).find(/* ELEMENTS */);
var attribute = $(code).find(/* ATTRIBUTES */);
var value = $(code).find(/* Values */);
$(element).wrap('<span class="element" />');
$(attribute).wrap('<span class="attribute" />');
$(value).wrap('<span class="value" />');
$(code).find('<').replaceWith('<');
$(code).find('>').replaceWith('>');
});
});
尝试格式化此内容的是:
<pre class="prettyprint">
<a href="http://website.com">Visit Website</a>
<a href="#top">Back to Top</a>
</pre>
转化成这样:
<pre class="prettyprint">
<span class="element">a <span class="attribute">href</span>=<span class="value">”http://website.com”</span></span>Visit Website<span class="element">/a</span>
<br/>
<span class="element">a <span class="attribute">href</span>=<span class="value">”#top”</span></span>Back to Top<span class="element">/a</span>
</pre>
提前感谢你!
你可以在这里查看 jsfiddle: http://jsfiddle.net/JamesKyle/L4b8b/