【发布时间】:2015-08-24 02:54:23
【问题描述】:
我有以下 HTML 代码:
<select>
<option selected>Test 1</option>
<option>Test 2</option>
<option>Test 3</option>
</select>
如何检查<select> 的<option>s 是否显示?例如,这被认为是显示<select>的<option>s:
这被认为是<select>的<option>s没有显示:
我试过这个:
$("#myselect").on("click", function() {
if ($("#myselect option").length == 0) {
console.log("not displayed");
} else {
console.log("displayed");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="myselect">
<option selected>Test 1</option>
<option>Test 2</option>
<option>Test 3</option>
</select>
但控制台日志一直“显示”。
那么我该如何实现呢?
编辑 1:
How to check if an select element is still “open” / active with jquery 的答案不起作用,因为当我单击 select 元素以显示选项然后再次单击它时,即使 select 仍处于焦点位置,选项也不会显示。
编辑 2:
以防我不够明确,基本上我希望控制台记录用户点击select或options的“显示”或“未显示”
【问题讨论】:
-
如果
<select>元素有焦点,它们就会显示,但当它没有焦点时它们仍然存在(除非您使用 JS 代码添加/删除它们......)。 -
@AlejandroTeixeiraMuñoz 那里的答案不起作用,因为我可以按 Escape 并且选择仍然是焦点,即使它没有显示选项
-
同意@AlejandroTeixeiraMuñoz - 该链接的第二个答案很有希望
-
对,检查第二个
标签: javascript jquery html