JQuery突出显示行与复选框单击

$(document).ready(function(){ $(".txtDate").datepicker({ showOn: "both", buttonImage: "library/ui/datepicker/img/calendar2.gif", dateFormat: "yy/mm/dd", buttonImageOnly: true }); //added this checkbox click for something I given earlier $("#Table input").click(function() { if ($(this).attr("checked") == true) { $(this).parent().parent().addClass("highlight"); } else { $(this).parent().parent().removeClass("highlight"); } }); }); 

我在代码后面动态添加的每一行都有一个复选框控件

 for( int i=0; i< data.count;i++){ HtmlTableCell CheckCell = new HtmlTableCell(); CheckBox Check = new CheckBox(); CheckCell.Controls.Add(Check); row.Cells.Add(CheckCell); Table.Rows.Add(row); } 

带有标记的表id在这里:

 

是的 – 我的答案也被摧毁了。

无论如何,如果您使用的是asp.net,那么名称会被破坏(类似于ctl100_Table),您需要将其放入jquery而不是Table。

查看浏览器中实际呈现的html以获取您需要使用的名称。

您可以尝试使用$(“[id $ = Table])。attr(”id“)来获取受损版本。

您的JQuery代码没有任何问题 – 尽管如果您使用toggleClass它会更清晰:

  $('#Table INPUT').click(function() { $(this).parent().parent().toggleClass('highlight'); }); 

我想你的id是错的 – 或者你在JQuery的那段代码运行之前遇到了另一个JavaScript错误。

我看到的第一个问题是没有带有“表输入”的元素,即匹配“#Table输入” – 至少不在你提供的html中。 无论如何,id都没有空间所以检查一下。 如果您需要,我很乐意帮助您。

Grr,我刚刚在删除之前完成了对这个问题的回复。 你打算删除这个吗?


我创建了一个示例文件来测试您的场景,它按预期工作。 我已将它包含在下面供您参考。 话虽如此,我建议删除与您在测试期间尝试解决的特定function无关的任何代码,以确保其他代码没有外围问题。 此外,请确保执行视图>源以确保您的表确实具有该ID,并且您的复选框和HTML正确且有效地呈现。 如果您破坏了HTML,那么您的jQuery将无法运行。

这是我使用的示例文件。 你在测试什么浏览器?

    Untitled      
Click me
Click me
Click me