如何获取JavaScript onclick的调用元素id
我有一个GridView,其中每一行都有信息,当用户单击该行时,更多相关信息将显示在一个单独的DIV中(这是可行的),但当我想要访问该行时(要在单击时更改/添加css类),我无法将该行作为目标。如何将JavaScript onclick事件分配给的行作为目标 下面是一个非常精简的代码版本:如何获取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
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);