Добавить текст после элемента, который содержит строку - PullRequest
0 голосов
/ 14 июля 2010

Я хочу написать расширение для Google Chrome, которое распознает фрагменты исходного кода на веб-страницах и автоматически копирует их в буфер обмена.

Я новичок в javascript и jquery, поэтому для первого шага,Я хотел попробовать очень простой случай.

Используя этот сайт в качестве примера: http://www.swharden.com/blog/2010-03-05-realtime-fft-graph-of-audio-wav-file-or-microphone-input-with-python-scipy-and-wckgraph/

Я хочу найти элемент, содержащий строку «import», и добавить текст «Здесьэто некоторый код "после элемента.Может ли кто-нибудь дать мне подсказку?

Моя первая попытка была $('*:contains("import ")').after("Here's some code");, но она вставлялась после каждого элемента, включая родителей, когда я хочу вставить только потомок самого низкого уровня.

Редактировать : Я хочу, чтобы код работал на любом сайте.Поэтому я хочу найти любой элемент, который содержит «импорт».Решения, характерные для примера сайта, не то, что я ищу.

Ответы [ 2 ]

0 голосов
/ 14 июля 2010

Пройдите через каждый текстовый узел на странице и найдите запрос - "import".Если это соответствует, то добавьте строку "Here's some code" после того, как она parent().

$("body *").contents().filter(function() {
    if(this.nodeType != Node.TEXT_NODE) {
        return;
    }
    if(this.nodeValue.indexOf('import') == -1) {
        return;
    }
    $(this).parent().after("Here's some code");
});

. Используя ваш приведенный пример, вы добавите "Here's some code" после каждой строки кода.Чтобы узнать, где именно начинается код, вам нужно применить некоторые эвристические методы.

0 голосов
/ 14 июля 2010

работает для меня на вашем примере сайта

$(".prettyprint span:contains('import')").after(" Here's some code");

убедитесь, что этот код запускается как обратный вызов после того, как префиксатор синтаксиса сделан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...