2016-03-22 7 views
1

Ich möchte ein jQuery-Argument in einer JavaScript-Funktion verwenden. Im Moment sieht mein Code so aus:Verwenden Sie jQuery-Argumente in der JavaScript-Funktion

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

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

Aber das funktioniert nicht. Irgendeine Hilfe?

Antwort

1

Einfache Fix

Um auf die Zeilen und Zellen des Tabellenobjekts zuzugreifen, können Sie einfach einen Array-Index wie folgt hinzufügen:

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

Sehen Sie diese vorherige Frage für weitere Einzelheiten: How to get a DOM Element from a JQuery Selector

das Snippet Lauf

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>

versuchen
0

Ein jQuery-Objekt besitzt keine rows oder cells Eigenschaft. Angenommen, Sie versuchen, die zweite td der zweiten tr (beachten Sie, dass die Indizes sind Null-basierte, so dass das Element mit dem Index von 1 ist die zweite), dann müssen Sie jQuery DOM Traversal-Methoden verwenden. In diesem Fall find() und :eq. Versuchen Sie folgendes:

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

Wenn die nextGen() Funktion ist eine DOMElement anstelle eines jQuery-Objekt erwartet dann, dass aus dem jQuery-Objekt wie folgt abrufen:

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