在 jquery 中使用 "this" 和 ".parent()" 当它经过简单的 div 或数据表时会有点混乱。我有一个具有以下结构的表:(我无法重命名任何类或 id)
<table class="table1">
<tbody>
<tr>
<div class="detail">
<table>
<thead></thead>
<tbody>
<tr>
<td>
<img class="picture_open" src="../location">
</td></tr></tbody></table></div></tr></tbody></table>
我想要做的是在该 img 上有一个点击功能,它能够获取完整的 RowElement。
我现在拥有的:
$(".table1 tbody tr td img.picture_open").live('click', function () {
var overallTable = jQuery(this).parent("table").dataTable();
console.log("overallTable: " + overallTable);
var elementRow = this.parentNode.parentNode;
console.log("elementRow: " + elementRow);
var rowData = overallTable.fnGetData( elementRow );
console.log("rowData: " + rowData);
if ( this.src.match('img_name') )
{
//kills the table that was created if that row is opened
}
else
{
//runs ajax call to create another table since row is NOT opened
}
} );
但是我上面的代码打印出:overallTable: [object Object] elementRow: [object HTMLTableRowElement] TypeError: 'null' is not an object (evalating 'oSettings.aoData')
我的问题是 $(this) 不正确吗?(没有得到类“picture_open”的img)或者我的overallTable变量设置不正确与.parent()?还是我的 elementRow 变量与 parentNode 设置不正确?澄清我的错误的任何帮助都将是惊人的。
谢谢!