jquery - 通过 br 标签分割行并添加 span 标签

标签 jquery

在幻灯片中,父级为 .cycle-slide我正在努力获取以下段落文本示例

<p>First line<br>leads to second<br>and then a third</p>

使用 javascript 实现此目的。我正在尝试拆分 p按每个<br>然后将文本包裹在 <span>

<p><span>First line</span><br><span>leads to second</span><br><span>and then a third</span></p>

我得到了这个,但它只显示在 console.log()

jQuery('document').ready(function(){
    jQuery.each( jQuery( ".cycle-slide" ), function() {
        var data = jQuery(this).find('p').html().split('<br>');
        jQuery.each(data, function() {
            console.log(data);
            jQuery(data).wrap('<span>');
        });
    });
});

最佳答案

假设p元素仅包含textNodebr元素,而不是拆分html内容和重置修改后的标记,您可以使用 .filter() 方法来选择文本 childNodes,并使用 .wrap() 方法来包装匹配的节点。

// `.contents()` method returns childNodes of the selected elements
$('p').contents().filter(function() {
    // `nodeType` of the `textNode` is 3
    return this.nodeType === 3;
}).wrap('<span/>');

http://jsfiddle.net/3Ky7S/

关于jquery - 通过 br 标签分割行并添加 span 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21831702/

相关文章:

javascript - Angular 下拉菜单

Jquery删除动态创建的可拖动div

javascript - CSS\JS - Long li 文本默认展开(应该 overflow hidden )

javascript - 鼠标输入时调整文本大小

javascript - 页面加载时的 .get() 请求

javascript - 使用 $format Date = $.PHP Date ("U", date) 转换为时区;

javascript - 使用 js 或 jquery 遍历数组并附加到 html 的更好方法

javascript - 对象不支持属性或方法 Internet Explorer IE 11 上出现错误

javascript - jQuery 点击 td 切换复选框

jquery - 调用 JQuery 且不回发的 Html 按钮