我正在尝试克隆HTML元素(文本框)&它与jQuery 1.4.2一起工作正常但在我的项目中我使用的是jQuery 1.9.1。
问题是,在jQuery 1.9.1中,即使将值设置为null,它也会克隆文本框的值。
这是demo:
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++;
});
谢谢。
答案 0 :(得分:2)
使用prop()
代替attr()
,如果使用最新的jquery(1.6 +)..
例如,应检索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++;
});
{{1}}
答案 1 :(得分:0)