jQueryを使用してHTML選択で2つのボタンを上下させるにはどうすればよいですか? 私はこれをアップボタンで使用します
$('#selectBox option:eq(' + $("#selectt").prop("selectedIndex")-1 + '3)')
.prop('selected', true);
リストの最後に到達したかどうかを知るために、「if」も必要だと思います
これを試して
$('#selectBox option:eq(' + $("#selectt option:selected").index()+')').prop("selected", "selected");
ここに例があります
html
<input id="up" type="button" value="Up" />
<input id="down" type="button" value="down" />
<select id="chart">
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="green">Green</option>
</select>
js
$(document).ready(function(){
$("#up").click(function(){
var a = $("#chart option:selected").prev();
if(a.length != 0)
a.prop("selected", "selected");
});
$("#down").click(function(){
var a = $("#chart option:selected").next();
if(a.length != 0)
a.prop("selected", "selected");
});
});
これを試して
HTML
<select id="foo">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<button id="up" class="dir" data-direction="-1">↑</button>
<button id="down" class="dir" data-direction="1">↓</button>
Javascript
var sel = $('#foo');
$('.dir').on('click', function() {
var btn = $(this),
dir = btn.data('direction')
currentIdx = sel.prop('selectedIndex'),
newIdx = currentIdx + dir;
if (newIdx < 0) newIdx = 0;
if (newIdx >= sel[0].options.length) newIdx = sel[0].options.length - 1;
sel.prop('selectedIndex', newIdx);
});
ここでデモ - http://jsfiddle.net/gXqKN/