Javascript jqueryfind-won';“我找不到”;b";HTML元素

Javascript jqueryfind-won';“我找不到”;b";HTML元素,javascript,jquery,html,Javascript,Jquery,Html,所以我在复制和粘贴时从Google文档中抓取HTML,将其转换为BBCode供我的站点编辑器使用 这很混乱(我无法控制Google文档的呈现方式),但是粘贴一些简单的东西(这是Google文档中的3行文本): 它适用于链接、br和p标签,但不适用于b标签,我不知道为什么 此方法替换了我想要的内容,然后在我们再次将其转换为普通文本时,其余内容将被丢弃。当您使用jQuery()解析html时,实际上会返回最上面的父项 在本例中,是顶级父级。因此,jqTxt实际上是b和两个meta元素的集合 因此,由

所以我在复制和粘贴时从Google文档中抓取HTML,将其转换为BBCode供我的站点编辑器使用

这很混乱(我无法控制Google文档的呈现方式),但是粘贴一些简单的东西(这是Google文档中的3行文本):

它适用于链接、br和p标签,但不适用于b标签,我不知道为什么


此方法替换了我想要的内容,然后在我们再次将其转换为普通文本时,其余内容将被丢弃。

当您使用
jQuery()
解析html时,实际上会返回最上面的父项

在本例中,
是顶级父级。因此,
jqTxt
实际上是
b
和两个
meta
元素的集合

因此,由于
find()
只查看当前选定项的后代,因此找不到
b
。任何后代
b
元素都可以找到,但您没有任何

一个简单的解决方案是在解析之前用一些伪标记包装输入文本:

text = "<div>" + text + "</div>";
text=”“+text+”;

示例(没有粘贴代码):

控制台中有错误吗?没有,就像“查找”函数不知道“b”元素是什么一样。我很困惑。太好了,就是这样,谢谢你的解释,你真的帮了我的忙:)
$('textarea').on('paste',function(e) 
{
    e.preventDefault();
    var text = (e.originalEvent || e).clipboardData.getData('text/html') || prompt('Paste something..');

    console.log(text);

    var jqTxt = jQuery(text);

    jqTxt.find("a").each(function(item, el)
    {
        $(el).replaceWith("[url=" + el.href + "]" + el.textContent + "[/url]");
    });

    jqTxt.find("br").each(function(item, el)
    {
        $(el).replaceWith("\n");
    });

    jqTxt.find("b").each(function(item, el)
    {
        $(el).replaceWith("[b]" + el.textContent + "[/b]");
    });

    jqTxt.find("p").each(function(item, el)
    {
        $(el).replaceWith(el.textContent+"\r\n");
    });

    window.document.execCommand('insertText', false, jqTxt.text());
});
text = "<div>" + text + "</div>";