2016-04-20 8 views
0

私はJavaScriptでクローン化され、このHTMLを持っている...jQueryを使用してクローンのHTMLノードにカスタムIDを追加しますか?

<tr class="empty-row screen-reader-text"> 
    <td><a class="button remove-row" href="#">-</a></td> 
    <td><input type="text" class="widefat" name="name[]" /></td> 


    <td><input type="text" class="widefat" name="url[]" value="http://" /></td> 
    <td><a class="sort">|||</a></td> 
    <td> 
     <textarea id="editor"></textarea> 
    </td> 
</tr> 

ボタンがクリックされた場合には、上記のHTMLテーブルの行を複製し、これを/ jQueryの.clone(true) JSでDOMに新しい行としてそれを挿入します。 ..

<script type="text/javascript"> 
jQuery(document).ready(function($) { 
    $('#add-row').on('click', function() { 
     var row = $('.empty-row.screen-reader-text').clone(true); 
     row.removeClass('empty-row screen-reader-text'); 
     row.insertBefore('#repeatable-fieldset-one tbody>tr:last'); 
     return false; 
    }); 
}); 
</script> 

私はID editorして上にHTMLからテキストエリアを取る必要が私の問題

...

<textarea id="editor"></textarea> 

そして私はidについては、以下の値がそれぞれの新しい行/編集者のためのユニークな値がDOMに追加されたワードプレスでのWYSIWYGエディタにそれを回すために、このJavaScriptを実行する必要があります...

tinyMCE.execCommand('mceAddControl', false, id); 

HTML行はclone(true)でクローンされているため、新しいエディタを設定して固有のIDを使用して初期化することができないため、前の行と同じエディタインスタンスにコピーされます。

DOMに追加された新しい行にカスタムID値があり、新しい行がDOMに追加された後にtinyMCE.execCommand('mceAddControl', false, id);をその新しいIDで実行できるようにするには、どうすればこの機能を再現できますか?

+0

は、少なくとも、それはあなたのために働いたかどうか、その答えにコメントするためにいくつかのマナーを示しました。 –

答えて

1

クローンの後に重複したIDを削除し、そのクラス名を使用することをお勧めします。 IDが重複している場合、TinyMCEはエディタを作成しません。

$(".screen-reader-text").clone().find("textarea").removeAttr("id").addClass("editor"); 

コードを結合エディタはなりその後、

tinyMCE.execCommand('mceAddControl', false, ".editor"); 
+0

申し訳ありません私はちょうどテストしなければなりません。新しいエディタごとに固有のIDを追加する必要がありました。私が共有クラスでそれを行った場合、前のエディタは新しいクラスが追加されたときに作業を終了します。私の検索で多くの人々がこれを達成しようとした結果、私は他の人のために自分のソリューションを投稿します。答えをありがとう – JasonDavis

関連する問題