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をhtml + idに置き換える何かが必要です。

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ヴァルキー...

于 2013-02-14T06:02:59.660 に答える