0

私は HTML 要素 (テキスト ボックス) を複製しようとしています & jQuery 1.4.2 で正常に動作しますが、私のプロジェクトでは jQuery 1.9.1 を使用しています。

問題は、jQuery 1.9.1 では、値が null に設定されていても、テキスト ボックスの値を複製することです。

ここにデモがあります:

var i = 1;
$("button").click(function() {
  $("table tr:first").clone().find("input").each(function() {
    $(this).attr({
      'id': function(_, id) { return id + i },
      'name': function(_, name) { return name + i },
      'value': ''               
    });
  }).end().appendTo("table");
  i++;
});

ありがとうございました。

4

2 に答える 2

2

最新のjquery(1.6+)を使用している場合は、prop()代わりに使用してください..attr()

たとえば、selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked、および defaultSelected を取得して、.prop() メソッドで設定する必要があります。jQuery 1.6 より前では、これらのプロパティは .attr() メソッドで取得できましたが、これは attr の範囲内ではありませんでした。これらには対応する属性がなく、単なるプロパティです。

これを試して

var i = 1;
$("button").click(function() {
  $("table tr:first").clone().find("input").each(function() {
   $(this).prop({
    'id': function(_, id) { return id + i },
    'name': function(_, name) { return name + i },
    'value': ''               
  });
}).end().appendTo("table");
i++;
});

valueまたは使用をattr()使用して属性を変更する代わりに.val('')

var i = 1;
$("button").click(function() {
  $("table tr:first").clone().find("input").each(function() {
   $(this).attr({
    'id': function(_, id) { return id + i },
    'name': function(_, name) { return name + i }
  }).val('');
}).end().appendTo("table");
i++;
});

ここでフィドル

于 2013-07-08T06:27:24.070 に答える
0

value 属性を使用する代わりに.val()を使用して値を設定します

var i = 1;
$("button").click(function() {
    $("table tr:first").clone().find("input").each(function() {
        $(this).attr({
            'id': function(_, id) { return id + i },
            'name': function(_, name) { return name + i }
        }).val('');
    }).end().appendTo("table");
    i++;
});

デモ:フィドル

于 2013-07-08T06:25:09.993 に答える