<!DOCTYPE html>
<html>
<head>
<Meta charset="utf-8">
<Meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<select id="ExSelect">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<br>
<br>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<button onclick="ToTheNext()" id="btnext">Next</button>
</body>
</html>
我在OnClick按钮上使用这个简单的功能将所选项目更改为下拉列表的下一个选项:
function ToTheNext()
{
$('#ExSelect option:selected').next().attr('selected', 'selected');
}
我的问题是:如何使用Vanilla JavaScript或jQuery将所选项目更改为此标记的上一个选项?
Jsbin示例:https://jsbin.com/nuyeduf/edit?html,js,output
解决方法:
两个问题 – 首先使用attr你设置了多个选项,这可能不是你想要做的,因为它会阻止prev()按预期工作.
像这样更改你的代码:
function ToTheNext()
{
$('#ExSelect option:selected').next().prop('selected', true);
}
function ToThePrevIoUs()
{
$('#ExSelect option:selected').prev().prop('selected', true);
}
https://jsbin.com/xewopobasi/1/edit?html,js,output
如果你正在使用jQuery,那么停止使用onclick属性,而是适当地分配点击处理程序
$('#btnext').on('click', function(){
$('#ExSelect option:selected').next().prop('selected', true);
});
$(function(){
$('#btnext').on('click',function(){
$('#ExSelect option:selected').next().prop('selected', true);
});
$('#btprev').on('click',function(){
$('#ExSelect option:selected').prev().prop('selected', true);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="ExSelect">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<br>
<br>
<button id="btnext">Next</button>
<button id="btprev">Prev</button>