我有一个表,其行由我的软件中的变量生成,我希望行被点击时突出显示。这是我的代码:
$("#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,但是说它是未定义的。感谢您的帮助。
答案 0 :(得分:3)
您需要将this
作为字符串
$("#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>");
您需要在活动时评估this
。目前,您在追加时对其进行评估。
答案 1 :(得分:0)
变化:
rowClick('" + newVariable.Name + "','" + this + "')
到此:
rowClick('" + newVariable.Name + "',this)