Первое слово в строке с JQuery - PullRequest
       7

Первое слово в строке с JQuery

7 голосов
/ 21 сентября 2010

Я пытаюсь найти функцию, которая поможет мне обернуть первое слово в строке в span.

Но, к сожалению, не повезло.

Может кто-нибудь помочь мне, пожалуйста?

Большое спасибо

Дом

Ответы [ 4 ]

22 голосов
/ 21 сентября 2010

В одну сторону:

$('something').each(function(){
     var me = $(this);
     me.html(me.html().replace(/^(\w+)/, '<span>$1</span>'));
});

[ источник | попробуйте ]

Обычно для каждого совпадения (something) вы заменяете первое слово на себя ($1), заключенное в теги <span>. Класс символов \w соответствует буквам, цифрам и подчеркиванию (таким образом, определяя, что такое «слово» - вам может потребоваться другое определение).

4 голосов
/ 21 сентября 2010

Вы спрашиваете, как это сделать в jQuery.Я думаю, вам понадобится регулярное выражение, чтобы lteraly добавить span .

. Вот пример использования jQuery для получения текста из DOM и выполнения обновления в DOM последобавив span к строке с регулярным выражением.

<div id="container">This is the text</div>
<script type="text/javascript">
jQuery(function($){
    // get the text you want to transform in a variable
    var html = $('#container').html();
    // doing the transformation (adding the span) with a regular expression
    html = html.replace(/^([^\s]*)(.*)/, "<span class=\"first-word\">$1</span>$2");
    // update your text
    $('#container').html(html);

    // or in one line:
    $('#container').html( ('#container').html().replace(/^([^\s]*)(.*)/, "<span class=\"first-word\">$1</span>$2") );
});
</script>

Вот что вы получите:

<div id="container"><span class="first-word">This</span> is the text</div>
0 голосов
/ 22 ноября 2016
var first;
var i=0;
$("p").each(function() {
first = $("p")[i].innerHTML;
$("p")[i].innerHTML = "<span class='first'>" + first.slice(0, first.indexOf(' ')) + "</span>" + first.slice(first.indexOf(' '));
i++;
});
0 голосов
/ 18 апреля 2016
(function () { 
    var node = $("div").contents().filter(function () { return this.nodeType == 3 }).first(),
        text = node.text(),
        first = text.slice(0, text.indexOf(" "));

    if (!node.length)
        return;

    node[0].nodeValue = text.slice(first.length);
    node.before('<span>' + first + '</span><br/>');
})(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...