質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

解決済

jQueryでtableを作成するコードの内容が読み解けなくて困っています。

taka_oct092018
taka_oct092018

総合スコア111

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1回答

0リアクション

0クリップ

176閲覧

投稿2022/10/03 17:58

  1. const elm = $('div'); このコードは最後の<div></div>を指し示しているのでしょうか。
  2. 最後の<div></div>はどのような理由で存在しているのか。<table>に追加する<tr><td>に必要な理由が分かりません。
  3. なぜfunction row(elm)に渡された$('div')は実行後のHTMLには<div>として生成されていないのでしょうか。elm.css(key, value)により、transparentが設定されて透明だからなのでしょうか。(開発者ツールで確認)
  4. <tbody>は自動的に生成されて組み込まれるのでしょうか。よろしくお願い致します。

改訂新版jQuery本格入門 サンプルコード P200より。一部編集済み。

HTML

<!-- 実行前のHTML --> <table> <tr> <th>CSS</th> <th>width</th> <th>innerWidth</th> <th>outerWidth</th> </tr> </table> <div></div><!-- 存在理由が分かりにくいdivタグ -->

HTML

<!-- 実行後のHTML --> <table> <tbody> <tr> <th>CSS</th> <th>width</th> <th>innerWidth</th> <th>outerWidth</th> </tr> <tr> <td>border:5px solid transparent</td> <td>100</td> <td>100</td> <td class="red">109</td> <tr> <tr> <td>margin:10</td> <td>100</td> <td>100</td> <td class="red">109</td> <tr> <tr> <td>padding:20</td> <td>100</td> <td class="red">140</td> <td class="red">149</td> <tr> </tbody> </table> <div style="border: 5px solid transparent; margin: 10px; padding: 20px;"></div>

jQuery

function row(elm) { return `<td>${ Math.trunc($(elm).width())} </td> <td>${ Math.trunc($(elm).innerWidth()) }</td> <td>${ Math.trunc($(elm).outerWidth()) }</td>`; } // 設定を追加していくCSS const css = { 'border' : '5px solid transparent', 'margin' : '10px', 'padding' : '20px' }; // CSSを追加し、その後の要素の幅を表示 $.each(css, function(key, value) { // key: プロパティ名, value: プロパティの値 const elm = $('div'); elm.css(key, value); $('table').append($(`<tr><td>${ key }:${ value }</td>${ row(elm) }</tr>`)); }); // 幅が100を超えたところは赤い太字 $('table td').each(function() { const width = Math.trunc($(this).text()); if (width > 100) { $(this).addClass('red'); } });

CSS

table { border-collapse : collapse; } table td, table th { border : 1px solid black; padding : 5px; } table td.red { color : red; font-weight : bold; } table td { text-align : right; } table tr td:first-child { font-weight : bold; text-align : left; } div { border : none; height : 100px; margin : 0; padding : 0; width : 100px; }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。