【发布时间】:2016-05-12 19:43:24
【问题描述】:
我在尝试让下拉菜单循环到具有 data-completed=false 的下一个选项时遇到问题
<select id="selectionChamp">
<optgroup label="1">
<option data-completed=true selected>Text 1</option>
</optgroup>
<optgroup label="2">
<option data-completed=true>Text 2</option>
</optgroup>
<optgroup label="3">
<option data-completed=true>Text 3</option>
</optgroup>
<optgroup label="45">
<option data-completed=false>Text 4</option>
<option data-completed=false>Text 5</option>
</optgroup>
</select>
<input type="button" id="fieldNext" value="Next">
Javascript:
$("#fieldNext").click(function() {
var $selected = $("option:selected");
var filter = "[data-completed!=true]";
$selected.attr("data-completed", true).prop("selected", false);
var $next = $selected.next("option"+ filter);
if ($next.length === 0) {
$next = $selected.parent("optgroup").next("optgroup:has(option"+ filter+")").find("option"+ filter+":first");
}
$next.prop("selected", true);
});
见:http://jsfiddle.net/w9kcd/105/
我知道它在filter = ""; 时有效,但在filter = "[data-completed!=true]"; 时无效
它应该从 1 开始,然后到 4,然后是 5,跳过 2 和 3。
【问题讨论】:
标签: javascript jquery next