Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取JavaScript onclick的调用元素id_Javascript_C#_Getelementbyid - Fatal编程技术网

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

如何获取JavaScript onclick的调用元素id,javascript,c#,getelementbyid,Javascript,C#,Getelementbyid,我有一个GridView,其中每一行都有信息,当用户单击该行时,更多相关信息将显示在一个单独的DIV中(这是可行的),但当我想要访问该行时(要在单击时更改/添加css类),我无法将该行作为目标。如何将JavaScript onclick事件分配给的行作为目标 下面是一个非常精简的代码版本: protected void vd_gv_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == Data

我有一个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> 

您可以尝试test.target.id
因为我认为你在点击按钮时调用了一个事件。因此,这将通过该测试中的事件。

最后,这就是我所做的:

row.Attributes["id"] = gv.ID + "_row_" + e.Row.RowIndex.ToString();
并在此处获取参考:

var row = document.getElementById(test.id);

调试提示:添加
console.log(测试)行到函数,现在在浏览器控制台中查看已传入的内容以及可使用的属性。这将导致“行”的全部内容及其所有属性都列出,但id为空。我想我需要手动设置JS事件分配给行的id?为什么不
test.className
,因为它已经是元素了?这会导致:“test.target未定义”
var row = document.getElementById(test.id);