【问题标题】:Array push and jQuery doesn't work数组推送和 jQuery 不起作用
【发布时间】: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


【解决方案1】:

这对我有用...我收到两个关于 div 的警报:

http://jsfiddle.net/ahallicks/E2Eez/

【讨论】: