我引用了以下Q& A:First word selector
我希望使用相同类型的<span></span>
设置,但是,我希望在特定<p>
内的每个<div>
的每个第一个字都能使用它。我该如何指定?
$(window).load(function(){
(function () {
var node = $("p").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>');
})();
});
在样式表中,我可以使用已应用于各种选择器的简单<span></span>
,并指定'span'函数将对每个选择器执行的操作。
答案 0 :(得分:2)
@Joseph re:小提琴的例子 不会更换更容易吗?
$("#target p").each(function(){
$(this).html($(this).text().replace(/^([^\s]+)\s?/, '<span>$1</span> '));
});
答案 1 :(得分:0)
dakdad有一个更好的解决方案:fiddle
@Michael Cornett:你能把dakdad标记为答案吗? :)答案 2 :(得分:0)
$(window).load(function(){
$("p").each(function(){
var text = $(this).text() + " ";
var newMarkup =
"<span class='firstWord'>" +
text.substr(0,text.indexOf(" ")) +
"</span>" +
text.substr(text.indexOf(" "));
$(this).html(newMarkup);
});
});
以下是我正在使用的示例的链接:http://www.meestro.com/vespers