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
プロパティがありません。 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());