解決したいこと
jqueryを勉強しています。
書籍の課題で自分の認識と異なっている箇所がありましたのでご教授頂けたら幸いです。
該当のソースコード
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Lesson18</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/style.css"> <script src="js/jquery-2.1.4.min.js"></script> <script src="js/script.js"></script> </head> <body> <h1>Table Row and Column Highlighting</h1> <table> <tr> <th> </th> <th>A</th> <th>B</th> <th>C</th> <th>D</th> <th>E</th> <th>F</th> <th>G</th> </tr> <tr> <th>a</th> <td>1000</td> <td>2000</td> <td>3000</td> <td>4000</td> <td>5000</td> <td>6000</td> <td>7000</td> </tr> <tr> <th>b</th> <td>2000</td> <td>3000</td> <td>4000</td> <td>5000</td> <td>6000</td> <td>7000</td> <td>8000</td> </tr> <tr> <th>c</th> <td>3000</td> <td>4000</td> <td>5000</td> <td>6000</td> <td>7000</td> <td>8000</td> <td>9000</td> </tr> <tr> <th>d</th> <td>4000</td> <td>5000</td> <td>6000</td> <td>7000</td> <td>8000</td> <td>9000</td> <td>10000</td> </tr> <tr> <th>e</th> <td>5000</td> <td>6000</td> <td>7000</td> <td>8000</td> <td>9000</td> <td>10000</td> <td>11000</td> </tr> <tr> <th>f</th> <td>6000</td> <td>7000</td> <td>8000</td> <td>9000</td> <td>10000</td> <td>11000</td> <td>12000</td> </tr> <tr> <th>g</th> <td>7000</td> <td>8000</td> <td>9000</td> <td>10000</td> <td>11000</td> <td>12000</td> <td>13000</td> </tr> </table> </body> </html>//jqueryでのDOM操作です
$(function(){
$('td').hover(function(){
$(this).parent().addClass('target');
var myIndex = $(this).index(); myIndex ++; $('td:nth-child('+ myIndex +')').addClass('target');
},function(){
$('.target').removeClass('target');
});
});
納得のいかない箇所
jqueryでの操作ですが、8行目の('+ myIndex +')です。
myIndexは変数になり「''」(クォーテーション)がいらないと思ったので、「''」(クォーテーション)はなしで実行しましたが、動きません。
また文字列連結の+を使っている意味がよくわかりません。
「''」(クォーテーション)は文字列の際に使う仕様だと思っていてDOM操作上で要素は全て文字列になると書籍上にもありました。その上でindex()の要素番号も文字列だと認識しています。
ただ、その要素番号は変数に入れています。今まで実行した課題で変数を扱った場合、「''」(クォーテーション)は使用していませんでした。
そこで上記の納得のいかない箇所のご説明と、改めて「''」(クォーテーション)の使いどころを教えて頂ければと思い、質問させていただきました。
一応ググったのですが分かりませんでした...。
回答2件
あなたの回答
tips
プレビュー