これを行う1つの方法は次のとおりです。
$("#ok").on("click", function(){
var output = [],
$selects = $("#s select"),
i;
for (i=0; i < $selects.length; i += 2)
output.push($selects.eq(i).find("option:selected").text() + ":" +
$selects.eq(i+1).find("option:selected").text());
var outputString = "{" + output.join(",") + "}";
});
デモ: http://jsfiddle.net/FH2HM/1/
つまり、selects を 2 つずつループし、.text()
各ペアで選択されたオプションの値を取得し、そのペアを配列に入れます。次に、ループの後、配列要素をコンマで区切った文字列に結合します。
表示したい値が option 要素のvalue
プロパティにある場合、ループ内の行は次のようになるため、コードが単純になることに注意してください。
output.push($selects.eq(i).val() + ":" + $selects.eq(i+1).val());
このコードはテーブル内のすべての選択をループするため、動的に追加された行を自動的に処理することに注意してください。