javascript - jQuery PrevAll 不适用于选择选项

标签 javascript jquery

出于某种原因,我似乎无法让 prevAll 使用选择框的选项。

我在这里想做的是将 omday 之前的所有选项标记为禁用。

JQ 忽略它是否有原因或者我的代码有问题?

这是我的代码:

jQuery(document).ready(function($) {
  var omday = 25;
  $('#inc-day').val(omday);
  $("#inc-day option").prevAll('#inc-day option[value="' + omday + '"]').prop('disabled', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<select class="incrange" id="inc-day" name="inc-day"><option value="1">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><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>

最佳答案

首先使用选择器捕获实际选定的选项,然后使用 prevAll() 函数禁用该选定选项之前的每个 option 元素。

$(document).ready(function() {
  var omday = 25;
  $('#inc-day').val(omday);
  $('#inc-day option[value="' + omday + '"]').prevAll().prop('disabled', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<select class="incrange" id="inc-day" name="inc-day"><option value="1">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><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>

关于javascript - jQuery PrevAll 不适用于选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42737085/

相关文章:

javascript - 使用 HTML 和 JavaScript 进行音乐控制

javascript - JS/JQuery 关于按键的正确使用

javascript - 从 Netlify 函数返回 Promise

javascript - 杂耍异步 - LearnYouNode - 立即调用函数表达式

javascript - JQuery UI 拖放的奇怪行为

javascript - 当段落和文本动态围绕 URL 时,如何在 &lt;textarea&gt; 中查找 URL?

如果表行发生更改,则 jQuery 发出警报(内部有 Fiddle)

jQuery 调用 CSS3 淡入淡出动画?

javascript - jQuery slideUp ("slow"), 但总是显示在桌面屏幕上

javascript - 我正在尝试让我找到的这段代码可以让可拖动的 SVG 工作