Получить номер строки в html с помощью JavaScript
Я выделил код рубина от CodeRay, и теперь я хотел бы знать, по какому номеру строки щелкнул пользователь. Этот номер строки должен соответствовать номеру строки в исходном коде. Какой лучший способ сделать это?
1 ответ
Решение
Вот как я решил этот вопрос. Я сгенерировал HTML с номерами по CodeRay. Но CodeRay не имеет точной документации на официальном сайте, поэтому, просмотрев код CodeRay, я сделал это так:
content = CodeRay.scan(file.read, :ruby).div(:css => :class,
:line_numbers => :inline)
Режим :line_numbers => :table
не работает должным образом в моем случае, что я должен был использовать :inline
Режим. Если вам не нравятся числа на вашей html-странице, я думаю, вы можете удалить их с помощью CSS или JavaScript. Затем я написал небольшую функцию JavaScript:
$('span').not('.no').click(function(e) {
var target = $(e.target);
target.effect('highlight', {}, 'slow');
var i = 0;
var prev_element = target.prev();
var element;
while (i++ < 10) {
element = $(prev_element[0]).context;
if (element.className == "no") break;
prev_element = prev_element.prev();
}
if (i > 9) {
alert("Some problem with the finding number line");
}
else {
var line_number;
if (element.children.length > 0) line_number = element.children[0].innerHTML;
else line_number = element.innerHTML;
alert(line_number);
}
e.stopPropagation();
})
Любые предложения и улучшения будут оценены.