繁体   English   中英

如何获取JavaScript onclick的调用元素的ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM