Доброго всем времени суток.
Пишу плагин для выделения синтаксиса листингов на сайте.
На странице есть элемент
<code type=javascript> // тут код</code>
<code type=php> // тут код</code>
В скрипте:
$('[type=php]').itcode('php');
$('[type=javascript]').itcode('javascript');
и в самом плагине:
$.fn.itcode = function(language) {
switch (language) {
case 'php':
init($(this), phpWords);
break;
case 'delphi':
init($(this), delphiWords);
break;
case 'javascript':
init($(this), javascriptWords);
break;
case 'java': break;
case 'code': break;
case 'c#': break;
}
};
метод init
var init = function (object, arrayOfWords) {
var words = [];
for (var k in arrayOfWords) {
words[arrayOfWords[k]] = arrayOfWords[k];
}
if (object.html()!==null) {
var include = object.html();
var lines = include.split('\n');
}
}
Ну и дальше уже работа со строками.
Всё работает хорошо, когда на странице только один элемент с тегом code, или несколько но с разными типами.
Но если в тексте встречается
<code type=javascript> // тут код</code>
плагин почему-то выбирает содержимое object.html(); из первого встречающегося на странице.
Прошу подсказки, в чём причина данной ситуации и как её решить?
Заранее благодарю!