1

以下は、特定の id 属性を持つ一連の入力スライダーをループし、それらの値を取得するための関数です。それは動作しません。どうして どうして?ありがとうございました。

JS フィドルの例

http://jsfiddle.net/V93D4/1/

HTML

<button id='button'>save</button>

<input id="pitchInput_1" type='range'></input>

<input id="pitchInput_2" type='range'></input>

ジャバスクリプト

 $('#button').click(function(){

     $('input[id^="pitchInput_"]').each(function(){
           alert(this.id);
           alert($('input[id^="pitchInput_"]').val()); // Doesn't capture correct val of BOTH sliders. 

        });


    });
4

2 に答える 2

1

はい、val()最初のものだけを取得します。

var values = $('input[id^="pitchInput_"]').map(function() {
    return $(this).val();
});
alert(values.join('\n'));

ここでvaluesは、スライダーの値の配列です。

于 2013-10-30T04:50:59.287 に答える
0

コードを少し変更するだけでうまくいきます。

<input id="pitchInput_1" type='range'></input>

<input id="pitchInput_2" type='range'></input>

これで、各ループがスライダーの正しい値を評価します。

$('#button').click(function(){

 $('input[type="range"]').each(function(){
     alert(this.id);
     alert($(this).val()); 
  });
});

ここでデモを参照してください。

これに加えて、この行を変更するだけで適切な値が得られます。

alert($('input[id^="pitchInput_"]').val());

これで。

alert($(this).val());

それが役に立てば幸い。

于 2013-10-30T05:01:21.107 に答える