jqueryを学習して理解しようとしていますが、複数のセレクターで問題が発生しています。セレクターの1つに複製されたjqueryオブジェクトがある場合、属性、ID、および名前を更新できないようです。
HTML
<div class="File">
Choose a file:
<input id="File0" name="File0" type="file" />
</div>
<input id="AddFile" type="button" value="Add a File" />
<div id="div1"></div>
<div id="div2"></div>
Jquery
var lastId = 0;
$(document).ready(function () {
$("#AddFile").click(function () {
var id = "File" + ++lastId;
var myInput = $(".File:first").clone(true);
// Why doesn't this update the input of type 'file'
// on the page when selecting multiple selectors?
$("input:file", myInput ).attr({ id: id, name: id });
//But if you have omit 'myInput' like this, it will work.
// $("input:file").attr({ id: id, name: id });
//This will also work
//$('#div1, #div2').attr({ id: id, name: id });
//If I add in the cloned object at the end, it will only
//modify the input element and not the div with class=File
//imyInput.insertBefore("#AddFile");
});
});
上記のコードを実行すると。[ファイルの追加]ボタンを何度クリックしても、domはid = "File0" name = "File0" type="file"と表示されます。