我正在尝试在H1标签的第一个单词周围插入一个范围。
不幸的是,标签也可以是链接,可以包括类等,例如:
来源= <h1>This is a test</h1>
输出= <h1><span>This</span> is a test</h1>
来源= <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>
有没有人在说过jQuery之前做过这个?
答案 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(' '));
}
}
});
答案 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