2016-03-22 8 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オブジェクトには、rowsまたはcellsプロパティがありません。 2番目のtdを2番目のtrにしようとしているとします(インデックスは0から始まるので、インデックスが1のアイテムが2番目です)、jQueryのDOMトラバーサルメソッドを使用する必要があります。この場合、find():eqです。これを試してみてください:

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

nextGen()機能ではなく、jQueryオブジェクトのDOMElementのを期待しているなら、あなたはこのようなjQueryオブジェクトからということを取得することができます。

nextGen($('#grundtabelle').find('tr:eq(1) td:eq(1)')[0]); 
// or: 
nextGen($('#grundtabelle').find('tr:eq(1) td:eq(1)').get()); 
関連する問題