Если вы хотите обернуть первое слово каждого H2 в промежутке, а в H2 гарантированно не будет тегов HTML внутри, вы сделаете это следующим образом:
// For each H2.
$('h2').each(function() {
// Get text.
var text = $(this).text();
// Split into words.
var words = text.split(' ');
// Wrap the first word.
if (words.length > 0) words[0] = '<span>' + words[0] + '</span>';
// Join the results into a single string.
var result = words.join(' ');
// Put the results back into the H2.
$(this).html(result);
});
Или с помощью регулярного выражения:
// For each H2.
$('h2').each(function() {
$(this).html($(this).text().replace(/^(\W*)\b(\w+)\b/, '$1<span>$2</span>'));
});