0

私はコードを持っています:

<div id="displayData_length" class="dataTables_length">
  <label>
     Show <select name="displayData_length" size="1" aria-controls="displayData">
             <option value="10" selected="selected">10</option>
             <option value="25">25</option>
             <option value="50">50</option>
             <option value="100">100</option>
           </select>
  </label>
</div>

オプションを選択したら、alert()を使用して値を表示します。私のコード:

$(document).ready(function() {
    $('select[name=displayData_length]').bind('change', function(event) {
            alert(this.val());
        });
 });

しかし、良くありません、何が問題なのですか?

4

7 に答える 7

1

次のようにする必要があります。

$('select[name=displayData_length]').bind('change', function(event) {
    alert($(this).val());
});

jQuery イベント ハンドラーでは、this常に DOM 要素を指し、jQuery でラップされません。

于 2012-11-20T12:07:43.753 に答える
1

.valは jQuery 関数であり、this単なる DOM ノードです。$(this).val()または、にアクセスする必要があります。this.value

于 2012-11-20T12:07:46.960 に答える
1

これをjQueryオブジェクトでラップしてみてください

これを変える

  alert(this.val());

 alert($(this).val());
于 2012-11-20T12:08:09.707 に答える
1

thisjQuery オブジェクトでラップする必要があります。

$('select[name=displayData_length]').bind('change', function(event) {
    alert($(this).val());
});

また、このセレクターはより高速であることにも注意してください

$('select', '#displayData_length') // faster
于 2012-11-20T12:08:26.150 に答える
1

thisjQuery オブジェクトをラップします。

alert($(this).val());
于 2012-11-20T12:08:27.130 に答える
0

これを使って :

$('select[name=displayData_length]').change(function() {
     alert($(this).val());    # for value
     alert($(this).find('option:selected').text());   # for text (UPDATED)
});
于 2012-11-20T12:07:55.340 に答える
0

これを試して

<select name="displayData_length" size="1" aria-controls="displayData" id="dia">
<option value="10" selected="selected">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>  

<script>
$("#dia").change(function () {
     var selctedValue = "";
     $("select option:selected").each(function () {
     selctedValue += $(this).val();
    alert(selctedValue);
    });
});
</script>
于 2012-11-20T12:10:34.880 に答える