产品让我操作UEditor,替换2个字符之间的样式

来源:互联网 发布:学seo前要做什么工作 编辑:程序博客网 时间:2024/06/06 03:04
产品提了需求,说这几个段落,我要识别特殊字符来规定特殊格式。好吧,那咱就开始做,循环了编辑器生成出来的P标签,截取了特殊字符标识,然后加上特有的样式。第一版上线了,效果还可以,不过每一段加上的都会有那个样式。于是新的需求出来了,产品让识别2个特殊字符之间的部分,给之间的部分加特殊样式。一开始,我的做法是截取字符串
jiequ1 = jiequ.substring(jiequ.indexOf("!!!") + 3,jiequ.indexOf("aaa"));

想这创建一个元素,然后给append到页面,最后再给这个元素添加text(jiequ1);于是我开始做,结果我忽略了字符截取之后是一个新的东西,根本没办法操作。之前的段落没办法删除。于是我陷入了一个死循环的坑,一直在我的页面找问题。

UEditor这个编辑器,回车自动生成P标签。如果我截取整个页面的P标签,来添加,我怕一篇文章,出现2段需要添加特殊字符的段落,那这样就又是一个坑了。自己的代码解决的意义明显已经不是太大了,我就想着怎么能把回车变成</br>就行了,我按了ctrl+回车,不管用,我又按了shift+回车,生效了。我审查了编辑器中html生成代码,出现了。这样问题就解决了。还是循环P标签,去识别字符,然后再把字符替换成空的

$('p').each(function(){        if($(this).text().indexOf('@@@')!=-1){            $(this).addClass('biankuang');            var str = $(this).html();            str=str.replace(/@{3}/g,'');            $(this).html(str);        }    });
这里面需要说明一点,$(this).html和$(this).text(),前者识别里面所有东西,而后者只识别文字。在这里面很重要的一个标签就是</br>,如果用了text,那么就没有“假段落”的意思了,必须用html。

不要钻牛角尖,此路不通,赶紧寻别的路。否则觉都别想睡。

阅读全文
1 0