LoginSignup
0
0

More than 3 years have passed since last update.

【jQuery】ボタンクリックしてテーブル内の値を取得したいとき

Last updated at Posted at 2018-08-06

人生で初めて書くので汚いですが、許してください。
仕事でjQuery触っていてそこで詰まってしまい、解決するのに1週間。
メモ書き程度で書きます。

<td>で囲んだ<select>のValue値を取得

<td>タグで囲んだ<select>タグの値「text」だと取得できるのですが
「text」で書くと、Value値を根こそぎ取得して持ってくる。
一意の値を取得し、Json形式で取得してストアドに投げるってのをやりたくって。

環境

【jQuery】
version 7.2.5
ごめんなさい、バージョン忘れちゃったので後日かきます。

【PHP】
version 3.2.1
ごめんなさい、これもバージョン忘れちゃったので後日かきます。

【サーバー】
IISにて環境を構築

TABLEの中にボタンを設置。ボタン設置行と同じ行にある<select>のValueを取得

参考 : jQueryで、ボタンをクリックすると、同じtrタグにあるtd要素のtextをアラート表示したい。

上記、参考URLを参照してください。
回答者の方が下記の様な事を書かれていたので参考にしました。

リファレンスによると、
開始要素から最も近い親要素を選択します。
引数にセレクター書式を指定した場合、マッチする最も近い親要素を返します。
とのことですので、ボタンの親要素から、'td.name' 'tr td.name' にマッチする要素を探しますが、親にはないですよね
親要素から、children で子要素を探すせばいいでしょう。

最初に書いたコード

$(function(){
     $('button.setting').on("click",function(){
         $(this).children('td').eq(1).text()
     })
})

上記のコードだと、SelectのValue値を全部取得。
当たり前ですね。ここをVal()に変えると、なぜか値が取れない。
【8/7追記】
nameを一意の物に設定していないので取れなかった様な気がします。

参考URLを見て書いたコード

$(function(){
     $('button.setting').on("click",function(){
         $(this).closest('tr').children('td').find("select").val()
     })
})

次に書いたコードだと、親要素を一度指定して、それから子へ行き
更にfind()で「select」を絞り込んでval()をやっているので取れた。

ごめんなさい、仕事メモだったので急ぎで書きましたが
後日、修正します。ご指摘などありましたらお願い致します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0