[英]How do get id of calling element for JavaScript onclick
我有一个GridView,其中每一行都有信息,并且当用户单击该行时,更多相关的信息显示在单独的DIV中(这可行),但是当我要访问行(单击更改/添加CSS类)时无法定位该行。 如何定位JavaScript onclick事件所分配到的行?
这是一个非常精简的代码版本:
protected void vd_gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "showTest(this)");
}
}
这是称为onclick的JS:
<script type="text/javascript">
function showTest(test) {
// var rowTest1 = document.getElementById(this);
// var rowTest2 = document.getElementById(this.id);
// var rowTest3 = document.getElementById(test);
// var rowTest4 = document.getElementById(test.id);
var row = document.getElementById(test.id);
var currentClass = row .className;
row.className += "testClass";
}
</script>
调试页面时,这是生成的错误:
Empty string passed to getElementById().
您可以尝试test.target.id,因为我认为您在单击按钮时会调用一个事件。 因此,它将通过该测试中的事件。
最后,这就是我所做的:
row.Attributes["id"] = gv.ID + "_row_" + e.Row.RowIndex.ToString();
并在此处获取参考:
var row = document.getElementById(test.id);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.