到目前为止,我需要动态地向表单添加输入:
Dim tmpAddress as String
tmpAddress = "A2:BZ" & Worksheets("Sheet2").UsedRange.Rows.Count
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Range(tmpAddress).RemoveDuplicates Columns:=15, Header:=xlNo
我知道有更好的方法。我读过有关setAttribute或.attr()的内容。我该如何开始?
def wrap(f,n):
fi=open(f,"w+")
rl=fi.readlines()
for i in range(0,len(rl)):
if len(rl[i]) > n:
fi.write(rl[i][:n] +"\n" + rl[i][n:])
fi.Close()
else:
fi.write(rl[i])
fi.close()
答案 0 :(得分:1)
是的,存在更好的方法,
$('#form').append($("<input>",{
"type" : "text",
"id" : "someId",
"name" : "someName",
"value" : "someValue"
}));
不要将纯jquery与javascript混淆。这有时会导致错误。比如在节点对象上调用jquery函数。例如:node.css(...)
答案 1 :(得分:0)
当我需要动态添加元素时,我会执行以下操作:
var $_form = $("#form");
$("<input/>",{ id : "input_1",type : "text", val : "value" }).addClass("class1 class2").appendTo($_form);
此表单适用于任何元素,而不仅仅是表单字段。
答案 2 :(得分:0)
为简洁起见,您可以在一行中执行以下操作:
$('#form').append("<input type='text' id='someId' name='someName' value='someValue'>");
但是对于更复杂的情况,您可以采用更长的方法:
$("<input/>", {
attributes
});
答案 3 :(得分:0)
您可以使用JavaScript createElement()和setAttribute()执行此操作,如下所示:
var input = document.createElement("input");
input.setAttribute("type", "text");
//and so on
答案 4 :(得分:0)
正如@scottmarcus指出的那样,这不一定更好但是不同。它是您正在寻找的:
var input = document.createElement("INPUT");
哪个是DOM元素;所以你不能使用.attr()
之类的jQuery方法。您必须使用setAttribute()
之类的JavaScript方法。为了使用jQuery方法,您所要做的就是将输入包装在$
中,如下所示:
var input = $( document.createElement("INPUT") );
更好的方法是:
var input = $('<input/>');
参考:https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement