Выбор текста между тегами комментариев с помощью jquery - PullRequest
1 голос
/ 28 марта 2012

Пробовал несколько методов, чтобы дать двум текстовым содержимым разные имена классов, которые находятся между блоками комментариев.

<a>
<!--:en-->Text1<!--:-->
<!--:fr-->Text2<!--:-->
</a>

Самое близкое решение, которое я нашел, я думаю, Jquery Next смежный селектор и попытался использовать функцию jQuery ('prev + next') , но все примеры нацелены на такие элементы HTML, как;

$("label + input").addClass("classone");

Я просто не смог найти способ Выбратьтекст, который идет после блоков комментариев.

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Я не уверен, насколько быстро это будет, но вы можете заставить его проверить весь код в теле и заменить эти предопределенные классы.Если вы заинтересованы в определенном теге, таком как <a>, то может быть еще быстрее.Это был бы мой подход.

var classes = {en:'classEN',fr:'classFR'};
// predefined class pairs
$('body').children().each(function() {
    var html = $(this).html();
    // grabs all the html code. then finds and replaces:
    html = html.replace(/<!--\s*:(\w+)(.*?)-->(.*?)<!--\s*:\s*-->/gi, function() {
        var lang = arguments[1].toLowerCase();
        // this catches the first parenthesized group that consists
        // of letters (after the colon) and converts it into lowercase
        if (!classes[lang]) return arguments[0];
        // returns the original if no match if found in the classes object
        var comment = '';
        if (!/^\s*$/.test(arguments[2])) comment = '<!--' + arguments[2] + '-->';
        // if you have a comment like <!--:en This is English-->
        // it keeps the comment as <!-- This is English --> and...
        return comment + '<span class="' + classes[lang] + '">' + arguments[3] + '</span>';
        // returns the result
    });
    $(this).html(html);
    // finally reassigns the modified result to each child
});
1 голос
/ 28 марта 2012

Самый простой способ - использовать плагин комментариев, например этот .

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