2016-03-22 82 views
1

我想在JavaScript函數中使用jQuery參數。目前,我的代碼如下所示:在JavaScript函數中使用jQuery參數

window.nextGen = function(cell) { 
    // code... 
} 

window.prepareNextGen = function() { 
    nextGen($('#grundtabelle').rows[1].cells[1]); 
} 

但這不起作用。任何幫助?

回答

1

簡單的解決

要訪問表格對象行和單元格,可以簡單地添加一個數組索引,如下所示:

nextGen($('#grundtabelle')[0].rows[1].cells[1]); 

更多細節請參見本前一個問題:How to get a DOM Element from a JQuery Selector

運行片斷嘗試

nextGen($('#grundtabelle')[0].rows[1].cells[1]); 
 

 

 

 
function nextGen(cell) { 
 
    
 
    console.info(cell.innerHTML); // displays B1 
 
    
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<table id="grundtabelle"> 
 
    <tr> 
 
    <td>A0</td> 
 
    <td>B0</td> 
 
    </tr> 
 
    <tr> 
 
    <td>A1</td> 
 
    <td>B1</td> 
 
    </tr> 
 
    <tr> 
 
    <td>A2</td> 
 
    <td>B2</td> 
 
    </tr> 
 
</table>

0

jQuery對象沒有rowscells屬性。假設您試圖獲得第二個trtd(請注意,索引是從零開始的,因此索引爲1的項目是第二個),那麼您需要使用jQuery的DOM遍歷方法。在這種情況下,find():eq。試試這個:

nextGen($('#grundtabelle').find('tr:eq(1) td:eq(1)')); 

如果nextGen()函數需要一個一個DOMElement,而不是一個jQuery對象,然後你可以檢索從jQuery對象是這樣的:

nextGen($('#grundtabelle').find('tr:eq(1) td:eq(1)')[0]); 
// or: 
nextGen($('#grundtabelle').find('tr:eq(1) td:eq(1)').get());