PROGRAMMING
javascript
- ページャーを作る(簡易版)
- ページャーを作る 4/4
(クロスブラウザ対策)
(ページャー表示用メソッド)
(ページャーの使い方) - ページャーを作る 3/4
(イベント登録) - ページャーを作る 2/4
(スタイルの設定) - ページャーを作る 1/4
(ページャー用関数を準備)
(各要素を生成) - 自作カレンダーを作る 6/6
(11.~14.各種メソッド)
(15.簡単な使い方) - 自作カレンダーを作る 5/6
(09.祝休日の判定)
(10.閏年の判定) - 自作カレンダーを作る 4/6
(08.イベントの設定) - 自作カレンダーを作る 3/6
(07.スタイルの設定) - 自作カレンダーを作る 2/6
(05.カレンダーのマスのみ作成)
(06.各マスへ年月・日付を埋め込み) - 自作カレンダーを作る 1/6
(01.カレンダーの基を準備)
(02.各月の日数や年月日の区切り文字)
(03.前月・次月指定時の処理)
(04.前月・次月部分の年月を算出) - JS-Image-Resizerを使って画像を高画質で縮小
- ファイルを作成しローカルに保存
- モーダルウィンドウをクラス化
- ストップウォッチを作る
- XMLHttpRequest Lebel2を試してみる
- jQuery:Tableで親・子・兄弟要素を取得
- 文字列をセパレータ文字で分割し配列で返す関数
- forループのカウンタを使用している関数の定義
- クロージャの使いどころ
- JSONPでクロスドメイン
- AjaxでJSON形式のデータを扱う
- jsファイルからjsファイルを呼び出す
- jQuery:モーダルウィンドウを作ってみる
CSS
- フォルダ構成をCSSで見やすくする
- シンタックスハイライトPrismのカスタマイズ
- リスト(li)を中央に配置する
- ブロックレベル要素全体をリンクにする
- 実践と点線の交わり部分のギザギザをすっきりさせる
PHP
Java
- IntelliJ.Gradle.JavaFX(6) プラグイン org.beryx.jlink を使ってみる
- IntelliJ.Gradle.JavaFX(5) NSISでインストーラーを作る
- IntelliJ.Gradle.JavaFX(4) exewrapで実行可能jarをexe化する
- IntelliJ.Gradle.JavaFX(3) Jlink でカスタム JRE を作る
- IntelliJ.Gradle.JavaFX(2) すべての依存対象を含んだ Fatjar を作る
- IntelliJ.Gradle.JavaFX(1) アプリケーションを作る
- javaのコンパイルと実行
- イメージを回転する
- Exif情報を簡単に取得できるライブラリ
- 高画質で画像縮小
- JDBCによるデータベース操作
Tableで親・子・兄弟要素を取得
今はWeb関連のプログラミングにはjavascriptが欠かせないと思います。
そしてまたコードが簡便になるjQueryも必須と言っていいのではないでしょうか。
javascriptを書きながらマニュアル本やサイトでよく調べるのが親・子・兄弟要素を取得する方法でした。
そこで、すぐ探せるようにメモっておくことにしました。
下のテーブルをサンプルにします。
社員番号 | 社員名 | 年齢 | 性別 |
---|---|---|---|
22345 | 宮本武蔵 | 31 | 男性 |
12468 | おつう | 22 | 女性 |
32589 | 佐々木小次郎 | 29 | 男性 |
19524 | 本位田又八 | 31 | 男性 |
68521 | 沢庵宗彭 | 65 | 男性 |
68521 | お杉おばば | 51 | 女性 |
<table id="sampleTable">
<tr><th>社員番号</th><th>社員名</th><th>年齢</th><th>性別</th></tr>
<tr><td>22345</td><td>宮本武蔵</td><td>31</td><td>男性</td></tr>
<tr><td>12468</td><td>おつう</td><td>22</td><td>女性</td></tr>
<tr><td>32589</td><td>佐々木小次郎</td><td>29</td><td>男性</td></tr>
<tr><td>19524</td><td>本位田又八</td><td>31</td><td>男性</td></tr>
<tr><td>68521</td><td>沢庵宗彭</td><td>65</td><td>男性</td></tr>
<tr><td>73524</td><td>お杉おばば</td><td>51</td><td>女性</td></tr>
</table>
trのいろいろな値を得る
trをクリックしていろいろな値を得てみます。
$("#sampleTable tr").on("click", function(){
// クリックしたtrのインデックス
var idx = $(this).index();
// その直前の兄弟(兄)のインデックス
var idxPrev = $(this).prev().index();
// その直後の兄弟(弟)のインデックス
var idxNext = $(this).next().index();
// trの数
var trLen = $(this).siblings().length + 1; // siblingsは自分を含まない兄弟
var trLen2 = $(this).parent().children().length;
// 子供tdの数
var tdLen = $(this).children().length;
// 兄trの数
var trPrevLen = $(this).prevAll().length;
// 弟trの数
var trNextLen = $(this).nextAll().length;
// 子供であるtdの二番目の値
var tdStr = $(this).children().eq(1).text();
// 最初のtrの3番目のtdの値(first()はeq(0)と同じ)
var tdStr2 = $("#sampleTable tr").first().children().eq(2).text();
// 最後のtrの4番目のtdの値(last()はeq(-1)と同じ)
var tdStr3 = $("#sampleTable tr").last().children().eq(3).text();
alert(
"クリックしたtrのインデックス:" + idx + "\n" +
"その直前の兄弟のインデックス:" + idxPrev + "\n" +
"その直後の兄弟のインデックス:" + idxNext + "\n" +
"trの数_方法1:" + trLen + "\n" +
"trの数_方法2:" + trLen2 + "\n" +
"子供tdの数:" + tdLen + "\n" +
"兄trの数:" + trPrevLen + "\n" +
"弟trの数:" + trNextLen + "\n" +
"子供であるtdの2番目の値:" + tdStr + "\n"
"最初のtrの3番目のtdの値:" + tdStr2 + "\n"
"最後のtrの4番目のtdの値:" + tdStr3 + "\n"
);
// 直前、直後が無い場合、インデックスは-1を返します。
// eq()にマイナスのインデックスを指定したときは後からの位置となります。
});
これらを応用してtdの内容などを得ることができます。
本位田又八の行をクリックした場合は次の結果がアラートされます。
クリックしたtrのインデックス:4
その直前の兄弟のインデックス:3
その直後の兄弟のインデックス:5
trの数_方法1:7
trの数_方法2:7
子供tdの数:4
兄trの数:4
弟trの数:2
子供であるtdの2番目の値:本位田又八
最初のtrの3番目のtdの値:年齢
最後のtrの4番目のtdの値:女性
最初のtrは項目行ですので、その3番目のtdの値は「年齢」となります。