2

我在我的应用程序中使用 CKEDITOR 4。

在这里,我有某种类型的标签,比如说“TagX”。

我只需要为那些没有 id 的 TagX 标签添加一个“id”属性。

我已经使用:

content = EditorInstance.getData();
var pattRegex = /<(tagx)(?![^<>]*\bid=).*?<\/\1>/gi;
var arrTagsX = content.match(pattRegex);
for (i = 0; i < arrTagsX.length; i++) {
    content = content.replace("<tagx", <tagx id=\"id_" + i + "\"");
}
EditorInstance.setData(content);

它工作正常,但内容大小非常大,所以我想避免setData();.

我想要一些东西来找到 html(不仅仅是文本)并用 html+id 替换 html。

4

2 回答 2

3

为什么不使用$('tagx')然后$(this)在显示的时候使用你的员工呢?

因此,让我们将工作交给 jquery,如下所示

var i=0;
$('tagx').each(function(){
   i++;
   $(this).attr('id','id_'+i);
});

编辑关于您的其他评论

让我们测试一下:not([id])

var i=0;
$('tagx:not([id])').each(function(){
       i++;
       $(this).attr('id','id_'+i);
});
于 2013-02-11T13:10:49.477 回答
1

最后我按照下面的方式更新了我的代码并满足了我的要求......

rootElement = EditorInstance.document.getElementsByTag("rootEle").getItem(0);
var tagxEle = rootElement.$.getElementsByTagName('tagx');
var i=0;
 $(tagxEle).not('[id]').each(function(){
    i++;                                        
    $(this).attr('id','tagx_'+i);
 });

thnx Valky 为您解答...

于 2013-02-14T06:02:59.660 回答