【发布时间】:2025-12-02 07:15:02
【问题描述】:
我有这段代码。我需要它来创建一组输入元素,然后将它们全部删除:
function inputReset(){
var td = new Array();
$('#aaa').find('input').each(function(){
td.push($(this).parent());
alert(td[0][0].nodeName);
});
alert(td[0][0]);
for(var i = 0; i < 2; i++){
var value = td[i].children('input').val();
alert(td[0][0].nodeName);
}
try{
td.children('input').remove();
td.text(value);
}catch(err){
//alert($('#aaa').html())
}
}
$('td[text="editable"]').click(function(){
$('td[text="editable"]').unbind('click');
inputReset();
$('td[text="editable"]').each(function(index){
if(index < 2){
var value = $(this).text();
$(this).html('<input type="text" name="i'+index+'" value="'+value+'" style="width: 100%" />');
}
});
$(document).keyup(function(e){
var keyCode = (window.event) ? e.which : e.keyCode;
if(keyCode == 27)
inputReset();
});
}
);
我不明白为什么第一个警报显示我推入其中的 0 元素,而第二个告诉我“tdArray[0] 未定义”。
有什么想法吗?
非常感谢
【问题讨论】:
-
这个特定的索引被覆盖了吗?
-
在这里工作正常:jsfiddle.net/KXbyC/5,除非您以其他方式实现它,否则问题出在其他地方。
-
@Niklas 奇怪的是,我正在寻找的输入标签是由 jquery 在上一步中添加的。但如果这是一团糟,第一个或第二个警报也不应该给我什么,你不觉得吗?
-
@Nemus 请分享所有相关代码,以便我们更好地尝试找出问题所在。
标签: javascript jquery arrays push