2017-01-19 13 views
1

私はJavascriptとjQueryを使い慣れていて、 "peopleID" div内の "Person [1]" divを必要に応じてボタンをクリックするだけで複製しようとしています。私が間違ったことを理解しているようだ。divを複製する際に問題が発生する

jsfiddle

Javascriptを

$(document).ready(function() { 
    $('#add').click(function() { 
    var clonedDiv = $('#Person[1]').clone(); 
    $('#peopleID').after(clonedDiv); 
    }); 
}); 

それ以外selectorsで特別な意味を持っているので、あなたがescape square bracket in selectorに必要なHTMLコード

<form> 
    <input id="add" value="Add Additional Field" type="button"> 
    <div id="peopleID"> 
    <div id="Person[1]"> 
     <select name="Personnel[1]"> 
     <option value="1">Option 1</option> 
     <option value="2">Option 2</option> 
     </select> 
    </div> 
    </div> 
</form> 
+1

「[]」などのIDに特殊文字を使用しないでください。あなたのIDは "Person1"でなければなりません。更新されたフィドルを確認してください:https://jsfiddle.net/14b98x2g/13/また、特殊文字 "Person \\\ [1 \\\]"をエスケープすることができます – Observer

+0

omgありがとうございます。私が間違ってやっていたことありがとうございました – Sohjiro

+1

同じIDを持つ複数の要素が得られることに注意してください。クローン作成後のIDを次の実行番号に変更する方が効果的です。 –

答えて

2

、それはID Personを持つ要素を検索しています属性1は角括弧がのため動作します210。

$('#Person\\[1\\]').clone(); 

それとも、代替としてattribute equals selectorを使用することができます。

$('[id="Person[1]"]').clone(); 
関連する問題