如何获取 JavaScript onclick 的调用元素的 ID
How do get id of calling element for JavaScript onclick
我有一个 GridView,其中每一行都有信息,当用户点击更多相关行时,信息显示在单独的 DIV 中(这有效)但是当我想访问行时(以change/add 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);
我有一个 GridView,其中每一行都有信息,当用户点击更多相关行时,信息显示在单独的 DIV 中(这有效)但是当我想访问行时(以change/add 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);