我想在JavaScript函數中使用jQuery參數。目前,我的代碼如下所示:在JavaScript函數中使用jQuery參數
window.nextGen = function(cell) {
// code...
}
window.prepareNextGen = function() {
nextGen($('#grundtabelle').rows[1].cells[1]);
}
但這不起作用。任何幫助?
我想在JavaScript函數中使用jQuery參數。目前,我的代碼如下所示:在JavaScript函數中使用jQuery參數
window.nextGen = function(cell) {
// code...
}
window.prepareNextGen = function() {
nextGen($('#grundtabelle').rows[1].cells[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>
jQuery對象沒有rows
或cells
屬性。假設您試圖獲得第二個tr
的td
(請注意,索引是從零開始的,因此索引爲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());