javascript - Select Option with Previous and next by jQuery - Stack Overflow

admin2025-04-19  0

I have bug when I click next or prev button. Here is my HTML

$("#nextPage").click(function() {
  $('#pagination option:selected').next().attr('selected', 'selected');
  console.log("hahaha next");
})

$("#prevPage").click(function() {
  $('#pagination option:selected').prev().attr('selected', 'selected');
  console.log("prev");
});
<script src=".1.1/jquery.min.js"></script>
<input type="button" value="prev" id="prevPage">
<select id="pagination">
    	<option value="1" selected>1</option>
    	<option value="2">2</option>
    	<option value="3">3</option>
    	<option value="4">4</option>
    	<option value="5">5</option>
    	<option value="6">6</option>
    </select>
<input type="button" value="next" id="nextPage">

I have bug when I click next or prev button. Here is my HTML

$("#nextPage").click(function() {
  $('#pagination option:selected').next().attr('selected', 'selected');
  console.log("hahaha next");
})

$("#prevPage").click(function() {
  $('#pagination option:selected').prev().attr('selected', 'selected');
  console.log("prev");
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="prev" id="prevPage">
<select id="pagination">
    	<option value="1" selected>1</option>
    	<option value="2">2</option>
    	<option value="3">3</option>
    	<option value="4">4</option>
    	<option value="5">5</option>
    	<option value="6">6</option>
    </select>
<input type="button" value="next" id="nextPage">

Here is my jsfiddle

Thank you

Share Improve this question edited Mar 31, 2017 at 10:54 Pete 58.5k29 gold badges130 silver badges184 bronze badges asked Mar 31, 2017 at 10:46 dedi wibisonodedi wibisono 5335 gold badges12 silver badges23 bronze badges 2
  • 3 Some details on what this 'bug' is would be good here. – Rory McCrossan Commented Mar 31, 2017 at 10:48
  • Check this: jsfiddle/r18qgvp8/4 – Rana Ghosh Commented Mar 31, 2017 at 10:56
Add a ment  | 

2 Answers 2

Reset to default 6

Use prop instead of attr and its work perfect.

$("#nextPage").click(function() {
  $('#pagination option:selected').next().prop('selected', 'selected');
  console.log("hahaha next");
})

$("#prevPage").click(function() {
  $('#pagination option:selected').prev().prop('selected', 'selected');
  console.log("prev");
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="prev" id="prevPage">
<select id="pagination">
  <option value="1" selected>1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
</select>
<input type="button" value="next" id="nextPage">

Use .prop instead of .attr as .attr will just add an extra attribute to each option whilst .prop will actually change the selected item

$("#nextPage").click(function() {
  $('#pagination option:selected').next().prop('selected', true);
  console.log("hahaha next");
})

$("#prevPage").click(function() {
  $('#pagination option:selected').prev().prop('selected', true);
  console.log("prev");
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="prev" id="prevPage">
<select id="pagination">
    	<option value="1" selected>1</option>
    	<option value="2">2</option>
    	<option value="3">3</option>
    	<option value="4">4</option>
    	<option value="5">5</option>
    	<option value="6">6</option>
    </select>
<input type="button" value="next" id="nextPage">

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1745066453a283014.html

最新回复(0)