jQuery选择下拉选项,只有一个非空选项
我正在处理一个店面包(因此我没有编辑核心文件的选项),我们有下拉菜单来选择用户想要的名片正面和背面。有些卡只有一个选项,因此如果只有一个选项,客户端希望隐藏下拉菜单 简单,对吗jQuery选择下拉选项,只有一个非空选项,jquery,html,html-select,Jquery,Html,Html Select,我正在处理一个店面包(因此我没有编辑核心文件的选项),我们有下拉菜单来选择用户想要的名片正面和背面。有些卡只有一个选项,因此如果只有一个选项,客户端希望隐藏下拉菜单 简单,对吗 $("select").each(function(){ var count = $(this).children("option").length; if ( count == 1 ) { // there's only one option, do something } })
$("select").each(function(){
var count = $(this).children("option").length;
if ( count == 1 ) {
// there's only one option, do something
}
});
这是可行的,但问题是系统有时会为一些下拉列表生成一个空白的
,因此实际上有两个选项,但只有一个“实际”选项:
实物期权
基本上,我需要选择只有一个
的
或两个
而其中一个是空的
我不能完全理解这样一个if语句的逻辑,因此如果有人有任何建议,我将不胜感激。您可以使用
而不是方法和:empty
选择器:
$("select").each(function(){
var count = $(this).find("option").not(':empty').length;
if ( count == 1 ) {
alert('okay')
}
});
改变计算它们的方式:
$('select').each(function() {
var count = 0;
$(this).children('option').each(function() {
if ( $(this).text() ) // true if not empty
{
++count;
}
});
if ( count == 1 ) // count only includes non-empty options
这应该可以处理。您可以将选择器更改为选项[值]
或选项:不(:空)
,这取决于空的选项是否总是完全空的,没有值,也没有文本根据给出的示例,
总是这样吗?如果是这样,你可以删除
标记中没有文本或没有值属性或空字符串的值属性。哦,嘿,这是一个比我的更好的解决方案。我真不敢相信我以前没有想到过。。。这么简单。谢谢
$('select').each(function() {
var count = 0;
$(this).children('option').each(function() {
if ( $(this).text() ) // true if not empty
{
++count;
}
});
if ( count == 1 ) // count only includes non-empty options