人生で初めて書くので汚いですが、許してください。
仕事で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()をやっているので取れた。
ごめんなさい、仕事メモだったので急ぎで書きましたが
後日、修正します。ご指摘などありましたらお願い致します。