0

フォームを作成していますが、JavaScript を使用して必要に応じて特定の DIV を複製できるようにしたいと考えています。ただし、特定のテキストの複数のインスタンスを置き換える必要があります。コメントを関数コードに置き換えたこのようなもの:

<body>

   <div id="duplicate">
      <p>Section_1 of form</p>
      <a href="javascript:add_section()">Add A Section</a>
   </div>

   <script type="text/javascript">
   <!--
      var num_sections = 1;
      function add_section()
      {

         var orig_div=document.getElementById("duplicate")
         var copy_div=orig_div.cloneNode(true);

         //Change every "Section_1" in copy_div to "Section_"+num_sections

         footer = document.getElementById("footer");
         document.body.insertBefore(copy_div,footer);

      }

   //-->
   </script>

   <div id="footer"></div>

</body>

JavaScript を使用して、Section_1これらのインスタンスがセクション内のすべての入力タグにある場合、すべてのインスタンスを置き換えるエレガントな方法は何ですか?

私は CMS の範囲内で作業しているため、より強力な処理言語を使用して実装することはできません。

4

1 に答える 1

1

getElementsByTagNameDOM ノードを呼び出して、タグで識別されるいくつかの要素グループを取得できます。

var num_sections = 1;
window.add_section = function() {
    var orig_div=document.getElementById("duplicate")
    var copy_div=orig_div.cloneNode(true);

    //Change every "Section_1" in copy_div to "Section_"+num_sections
    num_sections++;
    var p = copy_div.getElementsByTagName('p')[0];
    p.innerHTML = p.innerHTML.replace('Section_1', 'Section_' + num_sections);

    var footer = document.getElementById("footer");
    document.body.insertBefore(copy_div,footer);
};

ここにjsFiddleがあります

于 2013-03-27T17:40:05.303 に答える