0

選択フィールドの値とテキストをこのようにテキストとして取得しようとしています。

'1' => 'Alabama'
'2' => 'Alaska'
'3' => 'American Samoa'
..etc

しかし、私が得ている結果は正しく見えません。ここに jsfiddle があります: http://jsfiddle.net/3UfRq/

JS:

$(document).ready(function() {
   $("#state").each(function() {
   $("p#out").text("'" + $(this).val() + "' => '" + $(this).text() + "'<br/>");
    });
});

HTML:

<select id="state">
  <option value="1">Alabama</option>
  <option value="2">Alaska</option>
  ...
  <option value="65">Wyoming</option>
</select>

出力:

'43' => 'AlabamaAlaskaAmerican SamoaArizonaArkansas...Wyoming'

4

4 に答える 4

0

セレクター"#state option"は1つの要素にのみ一致するためeach、関数を1回だけ呼び出します。thisこの関数の中には、があり<select>ます。ただし、sを繰り返す必要があります<option>。したがって、コードは次のようになります。

$(document).ready(function() {
   $("#state option").each(function() {
     $("p#out").append("'" + $(this).val() + "' => '" + $(this).text() + "'<br/>");
  });
});

http://jsfiddle.net/YNGdN/

于 2012-11-29T18:48:25.957 に答える
0

交換

$("#state")

$("#state option")

コード

$(document).ready(function() {
   $("#state option").each(function() {
   $("p#out").append("'" + $(this).val() + "' => '" + $(this).text() + "'<br/>");
    });
});​

フィドルをチェック

于 2012-11-29T18:49:28.163 に答える
0

次のように、子を反復処理する必要があります:http option: //jsfiddle.net/xavier_seignard/3UfRq/2/

于 2012-11-29T18:49:54.260 に答える
0
$('#state option').map(function(i, opption) {
    $('#out').append(i + ' => ' + option.text + '<br/>');
});

デモ

于 2012-11-29T18:53:36.590 に答える