javascript - 使用 jQuery 在 x 个单词后插入一个 <br/> 标签

标签 javascript jquery

我正在尝试插入 <br />在标题中的 5 个单词之后,但我正在使用的代码段不起作用。请看下面:

$("#post-id > h2").each(function() {
    var html = $(this).html().split(" ");
    html = html[0] + "<br />" + html.slice(1).join(" ");
    $(this).html(html);
});

这个功能很好用——如果你想添加一个 <br />第一个 词之后标记。但是如果我把它改成 html.slice(5)那么它就不能正常工作。

我怎样才能解决这个问题,让它在 5 个单词后正常工作?或者,也许不同的方法会更合适?提前感谢您的帮助!

最佳答案

$("#post-id > h2").each(function() {
     var html = $(this).html().split(" ");
     html = html.slice(0,5).join(" ") + "<br />" + html.slice(5).join(" ");
     $(this).html(html);
});​

http://jsfiddle.net/f4chL/

基本思想是通过从索引零开始切片获取前 5 个单词,并获取数组的 5 个元素,加入它们,添加 break 标记,然后在索引 5 处获取数组中的其余元素(因为它是零基于索引)并用空格连接它们并将其转储到最后

编辑

为了完整的答案,如果 OP 确实想在每 5 个单词后拆分,这里有另一种方法

$("h2").each(function() {
var html = $(this).html().split(" ");
var newhtml = [];

for(var i=0; i< html.length; i++) {

    if(i>0 && (i%5) == 0)
        newhtml.push("<br />");

    newhtml.push(html[i]);
}

$(this).html(newhtml.join(" "));
});​

http://jsfiddle.net/2Z2nM/

关于javascript - 使用 jQuery 在 x 个单词后插入一个 <br/> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13030923/

相关文章:

javascript - 这是一个有效的 React HoC 用例吗?

javascript - 在 FormPanel 中获取子 editorGrid 类型

javascript - noUISlider:将 slider 链接到输入

异步加载内容时 JavaScript 无法识别我的函数?

javascript - 尝试访问对象时在非对象上调用未捕获的 TypeError : Object. 键

javascript - 使用单个 JavaScript 原型(prototype)(使用对象字面量)的多个文件

javascript - 即使在 allowedContent 中设置,CKeditor 也会删除样式属性

javascript - 如何将下拉值获取到 .php 文件中

jquery - 如何在复选框单击时选择 jqGrid 行?

javascript - 使用计算总和作为 Google Chart 的数据