2013-03-19 7 views
1

У меня есть переменная jquery, которая содержит html-код с красивыми классами Google для стилизации кода.Как удалить prettyprint классы из моего кода

<span class="pln"> 
    echo </span> 
    <span class="str">"$output"</span> 
<span class="pun">;</span> 
<span class="pln"> 
    echo </span> 
<span class="str">"$my_code"</span> 
<span class="pun">;</span> 

Я хочу удалить эти классные классы. Результат должен выглядеть так:

echo $output; 
echo $my_code; 

Я также хочу сохранить эти разрывы строк и форматирование кода.

Я попытался удалить каждый элемент span с помощью jquery, но это утомительная задача. Есть ли способ сделать это более продуктивно.

+0

В вашем примере кода, почему '$ output' и' $ my_code' выглядят как переменные (что показано в вашем предполагаемом результате), но похоже, что они рассматриваются как строковый литерал в prettyprint? (из кавычек вокруг них и имени класса 'str', установленного в их' span '), – Meligy

ответ

0

Вот возможное решение, при условии, весь код находится внутри DIV с определенным классом, и вы хотите заменить контент, конечно, вы можете легко изменить эти аспекты:

// change to fit your case 
var parent = $('.your-own-class'); 

var html = parent.html(); 
html = html 
    .replace(/(\r\n|\n|\r)/g,'') 
    .replace(/(\s\s+?)/gm, '') 
    .replace(/(\s+?\<+?)/gm, '<'); 

var tempElement = $("<pre />").html(html); 
tempElement.find(".pln:not(:first)").prepend("\n"); 
var text = tempElement.text(); 

// change to fit your case 
var output = parent; 

output.text(text).css("white-space", "pre"); 

Wo очий демо:

http://jsfiddle.net/Meligy/Ym2M8/

Пожалуйста, обратите внимание, что код не оптимизирован для лучшей производительности, если ваш реальный мир код prettyprint визуализируется отличается от точного кода вы здесь, вы можете сохранить некоторые Regex разбирает и получить лучшую производительность ,

0

Вы могли бы сделать что-то вроде этого:

var text = $(x).filter('span').text(); 

Это, кажется, работает просто отлично:

> $(x).filter('span').text() 
" 
    echo "$output"; 
    echo "$my_code";"