gpt4 book ai didi

javascript - 为什么输入元素的父节点未定义?

转载 作者:行者123 更新时间:2023-11-30 23:49:17 25 4
gpt4 key购买 nike

我有一个表,我在其中动态添加一些行,并在新行中添加一个输入文本元素。当输入元素中的文本更改时,我希望访问父行并对其执行一些操作。但我的代码无法访问输入元素的父节点。以下是代码示例。这是什么原因呢?有什么解决办法吗?

行的创建看起来像这样:

var newRow = document.createElement('tr');
dojo.place(newRow, row, "after");
var td = document.createElement('td');
dojo.place(td, newRow, 'last');
dojo.attr(td, 'colspan', 2);
dojo.place(document.createTextNode('Track id:'), td, 'last');
var input = document.createElement('input');
dojo.place(input, td, 'last');
dojo.attr(input, 'type', 'text');
dojo.attr(input, 'value', 0);
dojo.attr(input, 'onchange', "JavaScript: onTrackIdChange(event);");

onTrackIdChange 的初始部分如下所示:

function onTrackIdChange(event)
{
var textbox = event.target;
console.log(textbox);
// lets find the parent row
var row = findParentRow(btn);

findParentRow 的实现如下所示:

function findParentRow(node)
{
var parent = node;
do
{
console.log(parent);
parent = parent.parentNode;
}
while (parent.nodeName != 'TR');
return parent;
}

findParentRow 函数失败,因为它表示输入元素的父元素未定义。

最佳答案

在您的调用 findParentRow(btn) 中,您不应该传递 textbox 而不是 btn 吗?

您提交的代码中的其他位置没有引用此 btn 变量,因此如果符合顺序,您应该发布更多与之相关的代码。

关于javascript - 为什么输入元素的父节点未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com