如何用jQuery选择以前的选项?

Pv-*_*ana 3 html javascript jquery

我有一个带有select元素的html页面,如下所示:

<!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>
Run Code Online (Sandbox Code Playgroud)

我在OnClick按钮上使用这个简单的功能将所选项目更改为下拉列表的下一个选项:

function ToTheNext()
{
    $('#ExSelect option:selected').next().attr('selected', 'selected');
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何使用Vanilla JavaScript或将所选项目更改为此标记的上一个选项jQuery

Jsbin示例:https://jsbin.com/nuyeduf/edit html,js,output

Jam*_*iec 6

两个问题 - 首先使用attr你设置了多个选项,这可能不是你想要做的,因为它会阻止prev()你按预期工作.

像这样更改你的代码:

function ToTheNext()
{
    $('#ExSelect option:selected').next().prop('selected', true);
}

function ToThePrevious()
{
    $('#ExSelect option:selected').prev().prop('selected', true);
}
Run Code Online (Sandbox Code Playgroud)

https://jsbin.com/xewopobasi/1/edit?html,js,output

如果你正在使用jQuery,那么停止使用onclick属性,而是适当地分配点击处理程序

$('#btnext').on('click', function(){
    $('#ExSelect option:selected').next().prop('selected', true);
});
Run Code Online (Sandbox Code Playgroud)

$(function(){

  $('#btnext').on('click',function(){
    $('#ExSelect option:selected').next().prop('selected', true);
  });

  $('#btprev').on('click',function(){
    $('#ExSelect option:selected').prev().prop('selected', true);
  });

});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)