jQueryでボタンと同じ行にあるTDのテキストを取得する


jQueryでHTMLのDOMアクセスを整理してみました。今回紹介するのは<TABLE>による表組みで、行毎に配置された「Edit Words」ボタンを押すと、同じ行の他列「Dictionary Name」の値をポップアップするというサンプルコードです。

HTMLの外観

まずは作成したサンプルソースです。

jQueryでボタンと同行のTDフィールドにアクセス

jQueryでボタンと同行のTDフィールドにアクセス

jQueryの実装

「Edit Words」ボタンを押すと、同じ行の「Dictionary Name」の値がポップアップで表示されるというサンプルソースを作成してみました。

ボタンには一律 name="add-words" という名前の name 属性をつけて jQuery コードを書きやすくしました。

$('input[name=add-words]').click(function(){
  alert($(this).closest('tr').children('td').eq(0).text());
});

「'input[name=add-words]').click(・・・);」で "add-words" という名前を持っている <INPUT> 要素全てに Click イベントを実装することができます。

Clickに実装する内容は、自分自身【this】に最も近い<TR>の親要素【closet('tr')】を取得し、その子要素<TD>【children('td')】の一番目【eq(0)】の値【text()】を取得するというコードです。

注意事項

はまったのは、<TD>要素の一番目を取得するところで、最初は【children('td')[0].text()】とやっていました。これではtext()が見つからないとかで値をとることができないのでした。jQueryで<TD>の値をとるには【children('td').eq(0).text()】と書かなければならないので要注意です。


カテゴリー: jQuery   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です