</p> <div> </div>中每个<p>的第一个单词选择器

时间:2011-07-28 15:53:25

标签: jquery jquery-selectors

我引用了以下Q&amp; 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'函数将对每个选择器执行的操作。

3 个答案:

答案 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