需要"这个"引用tr而不是[window object]

时间:2014-05-15 18:54:25

标签: javascript jquery this tr

我有一个表,其行由我的软件中的变量生成,我希望行被点击时突出显示。这是我的代码:

$("#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,但是说它是未定义的。感谢您的帮助。

2 个答案:

答案 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)