所以,这有点难以解释,也有待搜索。
我的情况: 我有一个网页,允许用户填写最多48个时间字段,所有这些时间字段都是动态生成的,每个字段都有自己的ID,都在div中。
现在,用户还可以选择在任何地方删除字段。在这种情况下,我想重新排序它们。 示例:user具有时间框1到8,删除5。 6变为5,7变为6,8变为7。 这也应该算作ID。
现在,当用户删除一个框时,我会获取特定div中的所有div(DailyControls)并将它们放入一个数组中。所有这些div都有一个名为timepicker的类。
现在我需要从输入框中获取值,这些输入框现在也存储在数组中。
这是用于创建文本框(带有div,一些文本前面和删除按钮)
var newTextBoxDiv = $(document.createElement('div')).attr("ID", 'time' + boxID);
newTextBoxDiv.after().html('<label>Herrinering #' + boxID + ' : </label>' +
'<input type="text" name="timebox' + boxID +
'" id="timebox' + boxID + '" value="" class="timepicker" >' + '<img src="<%= Page.ResolveUrl("~") %>images/ico_delete.png" id="Delete'+ boxID +'" onclick="DeleteTime()"/>');
newTextBoxDiv.attr("class", "timerdiv");
要删除它们,我目前正在使用以下内容:
function DeleteTime() {
var id = event.target.id;
var IdNO = id.replace("Delete", "");
$("#time" + IdNO).remove();
var elemdivs = [];
for (var i = 0; i < $(".timerdiv").length; i++) {
elemdivs.push($(".timerdiv")[i].innerHTML);
}
$('.timerdiv').remove();
for (var i = 0; i < elemdivs.length; i++) {
alert(elemdivs[i]);
}
};
警告中的我可以看到输入元素,也可以看到div。 但我不知道如何从那里获得价值
答案 0 :(得分:0)
根据您提供的信息,这可能会有效:
function DeleteTime() {
var id = event.target.id;
var IdNO = id.replace("Delete", "");
$("#time" + IdNO).remove();
var elemdivs = [];
for (var i = 0; i < $(".timerdiv").length; i++) {
elemdivs.push($(".timerdiv")[i]); // don't push innerHTML
}
$('.timerdiv').remove();
for (var i = 0; i < elemdivs.length; i++) {
alert($(elemdivs[i]).find('input').val());
}
};
而不是将timerdiv中的innerHTML插入到timerdiv中。然后,在访问时,您.find()
timerdiv($(elemdivs[i])
)内的输入字段,然后从中获取.val()
。