【发布时间】:2013-05-10 19:25:55
【问题描述】:
我在一个页面上有多个表格,每个表格中可能有多个下拉菜单。表格和下拉列表是自动生成的。我要定位的表具有数字 ID,并且下拉列表的所有值都是数字。
我要定位的表之一的 HTML 示例代码
<table id="15">
<tr>
<td>
<div id="dd_4_0">
<select id="4_0">
<option value=""></option>
<option value="18">VNDR64324</option>
<option value="21">MFG5321</option>
<option value="27">OTHER</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div id="dd_2_6">
<select id="2_6">
<option value=""></option>
<option value="12">VN32R2345</option>
<option value="21">5678</option>
<option value="27">NEM</option>
</select>
</div>
</td>
</tr>
</table>
一旦选择了表格中的一个下拉菜单,我想隐藏其他下拉菜单。 我有可以工作的代码,但是如果可能的话,我想通过循环进行很多迭代。有没有更简洁的方法来写这个?
$('table').click(function() {
if($.isNumeric(this.id))
dd = $("#" + this.id + " select");
$.each(dd, function(){
if($.isNumeric($(this).val()))
{
selectedId = this.id;
$.each(dd, function(){
if(this.id != selectedId)
$('#dd_' + this.id).hide();
});
}
});
});
【问题讨论】:
-
您无权修改生成表格的代码?添加一些课程确实可以让您的生活更轻松。
-
2_6不是数字。 -
是的,这都是我的,所以我可以在那里编辑任何东西。但是,这就是说我的下拉菜单都是选择的下拉菜单,这是一个 jquery 插件,它添加了自己的类并做了一些重复,这使得添加额外的类变得困难。
-
我没有检查下拉列表或 div Id 是否为数字。
-
您可以使用
.filter()代替$.each(),但基本相同。 jQuery 没有任何基于模式或正则表达式匹配 ID 或值的方法。
标签: jquery hide each isnumeric