javascript – jQuery – 将所有未包装的文本包装在p标签中

前端之家收集整理的这篇文章主要介绍了javascript – jQuery – 将所有未包装的文本包装在p标签中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一种情况,以下代码被写入我的页面.

在这种情况下,它似乎总是第一行没有包装在p标签中,这可能使解决方案变得更容易,尽管并非每次都如此.有时候很好.

我需要做的是确定第一行是否被包装,如果没有,则包装它.

不幸的是我不知道从哪里开始这个问题所以任何帮助将不胜感激.

最佳答案
尝试使用此代码来包装未使用< p>包装的任何TextNode标签.

function getTextNodesIn(node,includeWhitespaceNodes) {
    var textNodes = [],whitespace = /^\s*$/;

    function getTextNodes(node) {
        if (node.nodeType == 3) {
            if (includeWhitespaceNodes || !whitespace.test(node.nodeValue)) {
                textNodes.push(node);
            }
        } else {
            for (var i = 0,len = node.childNodes.length; i < len; ++i) {
                getTextNodes(node.childNodes[i]);
            }
        }
    }

    getTextNodes(node);
    return textNodes;
    }

    var textnodes = getTextNodesIn($("#demo")[0])​​​​;
    for(var i=0; i < textnodes.length; i++){
        if($(textnodes[i]).parent().is("#demo")){
            $(textnodes[i]).wrap("

这是一个jsfiddle,显示了这一点.

PS:TextNode检测部分已从this answer借来

猜你在找的jQuery相关文章