【发布时间】:2014-05-15 18:54:25
【问题描述】:
我有一个表格,其中的行由我的软件中的变量生成,我希望这些行在单击时突出显示。这是我的代码:
$("#varTable > tbody:last").append("<tr style='border: 1px dotted black;' onclick=\"rowClick('" + newVariable.Name + "','" + this + "')\">><td><img id='Img12' src='images/Delete.png' width='35' height='35' style='margin-left:0px; margin-top: 10px;'></td><td>New Variable</td><td>Global</td><td></td><td><center>0</center></td><td><form action=''>" +
"<center><input type='checkbox' name='RetainValue' value='Retain'></center></form></td><td width='100px'><button type='button' onclick='editVariable()'>Edit</button></td></tr>");
}
function rowClick(name, row){
console.log(row);
selectVariable = name;
$("#selName").html("Selected Variable: <font color='red'>" + selectVariable + "</font> Filter By: <button type='button' onclick='addVariable()'>Add Variable</button>");
$(row).css("border", "1px solid black");
}
我的问题是,当我将“this”传递给函数 rowClick 时,它出现为 [window object] 而不是 onclick 所在的 tr。我也尝试使用 this.element,但表示它未定义。感谢我能得到的任何帮助。
【问题讨论】:
-
由于您已经在使用 jQuery,您可以从标记中删除 onClick 并执行 $('body').on('click', 'tr', function(){.. . 并将新变量分配给数据属性。只是一个想法。
-
@JayBlanchard 这正是我的想法。
标签: javascript jquery this tr