javascript - 根据所选类动态显示选项
问题描述
我想在某些情况下获得我选择的选项类,但我无法动态获得它,我的意思是:
我想将class2
of替换jQuery("#drop2 option).class2").show();
为var actClass
所以我想要:jQuery("#drop2 option).actClass").show(); //actClass is my var.
代替 :
jQuery("#drop2 option).class2").show();
//dropdown1
<select id="drop1" class="class1" name="class1">
<option selected="true" disabled="disabled">---</option>
<option class="class1" value="Val1">Val1</option>
<option class="class2" value="Val2">Val2</option> //selected one
<option class="class3" value="Val3">Val3</option>
</select>
//dropdown2
<select id="drop2" class="class1" name="class1">
<option selected="true" disabled="disabled">---</option>
<option class="class1" value="yop1">yop1</option>
<option class="class2" value="yop2">yop2</option>
<option class="class3" value="yop3">yop3</option>
</select>
jQuery('#drop1').bind('change keyup', function() {
var actClass = jQuery("#drop1 option:selected").attr('class'); //here i get the selected class exemple : class2
jQuery("#drop2 option).class2").show(); //here I want to replace the .class2 by var actClass, I mean I get it dynamically
});
解决方案
您可以使用string
concatenation
您可以concatenate
使用字符串到变量string concatenation
Eg: var a = "myname"
"test is"+a ==> "test is myname"
jQuery('#drop1').bind('change keyup', function() {
var actClass = jQuery("#drop1 option:selected").attr('class'); //here i get the selected class exemple : class2
jQuery("#drop2 option."+actClass).hide(); //regular browsers
jQuery("#drop2 option."+actClass).remove(); // IE, safari browsers
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
//dropdown1
<select id="drop1" class="class1" name="class1">
<option selected="true" disabled="disabled">---</option>
<option class="class1" value="Val1">Val1</option>
<option class="class2" value="Val2">Val2</option> //selected one
<option class="class3" value="Val3">Val3</option>
</select>
//dropdown2
<select id="drop2" class="class1" name="class1">
<option selected="true" disabled="disabled">---</option>
<option class="class1" value="yop1">yop1</option>
<option class="class2" value="yop2">yop2</option>
<option class="class3" value="yop3">yop3</option>
</select>
ps:作为@charlietfl,提到的选项show
hide
可能不适用于所有浏览器,所以你可以remove
和create
.
你也可以使用detach()
var opt=$("option").detach();
以后你可以append()
opt.appendTo( "select" );
我用删除添加了我的例子,请检查
推荐阅读
- java - 如何在 beanshell 中的 java 中构造 JSON 的多个对象和数组并查看输出
- asp.net - 未保存自定义联系人方面
- php - 从没有页面刷新的操作
- powershell - 在部署中使用 VSTS 作为 PowerShell 库
- html - 宽度和高度 100% 不起作用
- python - 发射多颗子弹并通过按键改变它们的位置
- c# - 实体类型'xxx'需要一个主键,但我已经定义了它?
- android - Android WebView 和网络安全配置
- javascript - Tez 没有安装,去play store 安装?关于网络支付测试演示
- tensorflow - 加载 Mnist 数据