如何在H1和href标记中的第一个单词上放置<span> </span>

时间:2012-09-13 10:38:31

标签: jquery

我正在尝试在H1标签的第一个单词周围插入一个范围。

不幸的是,标签也可以是链接,可以包括类等,例如:

  1. 来源= <h1>This is a test</h1>

    输出= <h1><span>This</span> is a test</h1>

  2. 来源= <h1 class="blah blah"><a href="#">This is a test<a/></h1>

    输出= <h1 class="blah blah"><a href="#"><span>This</span> is a test<a/></h1>

  3. 有没有人在说过jQuery之前做过这个?

4 个答案:

答案 0 :(得分:1)

这可以通过

来完成
$(' your selecter').each(function(){
     var one = $(this);
     one.html(one.html().replace(/^(\w+)/, '<span>data</span>'));
});

答案 1 :(得分:0)

查看lettering.js你可以用它包装单词和字母。这很棒。

答案 2 :(得分:0)

适用于其中的“a”标记和纯文本。

$('h1').each(function(){
        if($(this).find('a').length>0)
        {
            var text = $(this).find('a').html();
            text = text.split(' ');
            if(text.length>0)
            {
                text[0] = '<span>' + text[0] + '</span>';
                $(this).find('a').html(text.join(' '));
            }
        }
        else
        {
            var text = $(this).html();
            text = text.split(' ');
            if(text.length>0)
            {
                text[0] = '<span>' + text[0] + '</span>';
                $(this).html(text.join(' '));
            }
        }
    });

Demo

答案 3 :(得分:0)

你可以尝试这个,它适用于两个例子。

$('h1').each(function(){
     var self = $(this);
     var p = self.text().split(' ');
     var html = self.html().replace(p[0], '<span>'+ p[0] +'</span>');
     self.html(html);
});

选中 Demo