jquery – 第一个字选择器

前端之家收集整理的这篇文章主要介绍了jquery – 第一个字选择器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在div中选择第一个单词?

我需要能够在第一个单词之后插入换行符,或者将其包装在跨度标签中.我需要为同一个类的页面上的多个div做这个.

解决方法

替换 HTML将导致事件处理程序被绑定并替换元素的整个文本将导致HTML标记丢失.最好的方法是使任何HTML保持不变,仅操纵匹配元素的第一个文本节点.要获取该文本节点,可以使用 .contents().filter()
function wrapFirstWord () { 
    // Select only the first text node
    var node = $("div").contents().filter(function () { 
            return this.nodeType == 3;
        }).first(),// Get the text... 
        text = node.text(),// ... and the first word
        first = text.slice(0,text.indexOf(" "));

    if (!node.length)
        return;

    // Remove the first word from the text
    node[0].nodeValue = text.slice(first.length);

    // Add it back in with HTML around it
    node.before('<span>' + first + '</span><br/>');
};

工作演示:http://jsfiddle.net/9AXvN/

使用这种方法将确保操纵第一个单词将不会对元素的其余内容产生不必要的副作用.

您可以轻松地将其作为jQuery的扩展名,其中包含要包装的单词数量的可选值:

$.fn.wrapStart = function (numWords) { 
    var node = this.contents().filter(function () { 
            return this.nodeType == 3 
        }).first(),text = node.text(),first = text.split(" ",numWords).join(" ");

    if (!node.length)
        return;

    node[0].nodeValue = text.slice(first.length);
    node.before('<span>' + first + '</span><br/>');
};

工作演示:http://jsfiddle.net/9AXvN/1/

原文链接:https://www.f2er.com/jquery/179695.html

猜你在找的jQuery相关文章