2

我希望有人可以在这里帮助我。看起来应该很容易,但我一直无法找到解决方案。

我有一个看起来像这样的表:

在此处输入图像描述

我已将一个 javascript 函数附加到最左侧控件的onclick事件处理程序中。CheckBox这是我的javascript:

// Toggle row colors when a "N/A" checkbox is clicked.
function handleNAClick(cb) {
    if ($(cb).parent().parent().hasClass('silver')) {
        $(cb).parent().parent().removeClass('silver').addClass('white');
    }
    else {
        $(cb).parent().parent().removeClass('white').addClass('silver');
    }
}

此函数在单击 时切换行颜色CheckBox

如果单击,我想要做的也是启用/禁用TextBox行最右侧的。CheckBox

这个表是动态生成的,我不提前知道控件的ID。

如您所见,我已经可以获取表格行的句柄并更改颜色,但由于某种原因,我无法弄清楚如何获取TextBox该行的句柄。

根据我的研究,这应该适用于在 jQuery 中启用文本框,但它不会:

$(cb).parent().parent().find('input').removeAttr('disabled');

我什至无法更改其中的文本TextBox

$(cb).parent().parent().find('input').val('hotdog');

似乎它应该很简单,所以我倾向于认为我在以某种方式“指法”它。

有谁知道更好的方法来做我想做的事?我在搞砸什么?

谢谢!

4

2 回答 2

3

似乎您正在使用<textarea>而不是<input>,如果是这种情况,以下将起作用:

$(cb).parents('tr:first').find('textarea').prop('disabled', false);

由于您要修改元素的属性,因此必须通过.prop()方法完成,因此删除该属性将无济于事。

于 2013-07-20T01:21:08.330 回答
0

对于快速简便的解决方案,您似乎走在了正确的轨道上。您只需获得 dom 遍历方法的正确组合即可找到您要查找的内容。您确定表格最右侧的单元格是简单的输入吗?它看起来更像是一个文本区域,但我不知道。一般来说,尝试离开这个系统,但如果以后需要添加另一个列或包装 div 怎么办?稍微修改一下动态生成代码以帮助您可能是值得的。

于 2013-07-20T01:23:42.420 回答