jQuery多选显示/隐藏
jQuery multiple select show/hide
我有一个语言翻译表。我正在尝试创建一个隐藏多个语言列的脚本。问题是它一次只隐藏一个字段。我无法隐藏多个语言条目。演示
$(document).ready(function () {
$( ".hide" )
.change(function() {
var str = "";
$( ".hide option:selected" ).each(function() {
str += $( this ).val();
});
$('[class^=cell]').show();
$( ".cell" + str ).hide();
})
.trigger( "change" );
});
<select class="hide" multiple="">
<option value="0">ignore_id</option>
<option value="1">English</option>
<option value="2">French Can</option>
<option value="3">Simp. Chinese</option>
<option value="4">Spanish</option>
<option value="5">Japanese</option>
<option value="6">Trad. Chinese</option>
<option value="7">Russian</option>
<option value="8">Malay</option>
<option value="9">Swedish</option>
<option value="10">Finnish</option>
<option value="11">Italian</option>
<option value="12">German</option>
<option value="13">Danish</option>
</select>
<table width="100%" cellspacing="0" cellpadding="2" border="0" id="table">
<thead>
<tr class="headings">
<th align="left" class="cell0" style="display: table-cell;"><b>ignore_id</b>
</th>
<th align="left" class="cell1" style="display: table-cell;"><b>English</b>
</th>
<th align="left" class="cell2" style="display: none;"><b>French Can</b>
</th>
<th align="left" class="cell3" style="display: table-cell;"><b>Simp. Chinese</b>
</th>
<th align="left" class="cell4"><b>Spanish</b>
</th>
<th align="left" class="cell5"><b>Japanese</b>
</th>
<th align="left" class="cell6"><b>Trad. Chinese</b>
</th>
<th align="left" class="cell7"><b>Russian</b>
</th>
<th align="left" class="cell8"><b>Malay</b>
</th>
<th align="left" class="cell9"><b>Swedish</b>
</th>
<th align="left" class="cell10"><b>Finnish</b>
</th>
<th align="left" class="cell11"><b>Italian</b>
</th>
<th align="left" class="cell12" style="display: table-cell;"><b>German</b>
</th>
<th align="left" class="cell13"><b>Danish</b>
</th>
<th align="left">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" class="cell0" style="display: table-cell;">79891</td>
<td align="left" class="cell1" style="display: table-cell;">test</td>
<td align="left" class="cell2" style="display: none;">Hello World</td>
<td align="left" class="cell3" style="display: table-cell;">你好世界</td>
<td align="left" class="cell4">hello</td>
<td align="left" class="cell5">ハローワールド</td>
<td align="left" class="cell6">你好世界</td>
<td align="left" class="cell7">привет мир</td>
<td align="left" class="cell8">malajec</td>
<td align="left" class="cell9">swed</td>
<td align="left" class="cell10">fin</td>
<td align="left" class="cell11">talo</td>
<td align="left" class="cell12" style="display: table-cell;">gero</td>
<td align="left" class="cell13">Život</td>
<td><span class="edit_b"></span><span class="remove_b"></span>
</td>
</tr>
<tr>
<td align="left" class="cell0" style="display: table-cell;">79927</td>
<td align="left" class="cell1" style="display: table-cell;">test</td>
<td align="left" class="cell2" style="display: none;"></td>
<td align="left" class="cell3" style="display: table-cell;">sgs</td>
<td align="left" class="cell4"></td>
<td align="left" class="cell5"></td>
<td align="left" class="cell6"></td>
<td align="left" class="cell7"></td>
<td align="left" class="cell8"></td>
<td align="left" class="cell9"></td>
<td align="left" class="cell10"></td>
<td align="left" class="cell11"></td>
<td align="left" class="cell12" style="display: table-cell;"></td>
<td align="left" class="cell13"></td>
<td><span class="edit_b"></span><span class="remove_b"></span>
</td>
</tr>
</tbody>
</table>
问题出现在代码$(".cell" + str)
中,在每个块之后,移动代码以隐藏在每个部分中。
$(".hide").change(function () {
$('[class^=cell]').show();
$(".hide option:selected").each(function () {
$(".cell" + $(this).val()).hide();
});
}).trigger("change");
DEMO
$(document).ready(function () {
$(".hide" ).change(function() {
var str = [];
$(".hide option:selected").each(function() {
str.push($( this ).val());
});
$('[class^=cell]').show();
for(i=0; i<str.length; i++){
$( ".cell" + str[i] ).hide();
}
}).trigger( "change" );
});
演示:
http://jsfiddle.net/LAZeX/
迭代循环时,需要隐藏每个选定的选项,如下所示:
$( ".hide" ).change(function() {
var str = "";
$('[class^=cell]').show();
$( ".hide option:selected" ).each(function() {
str = $( this ).val();
$( ".cell" + str ).hide();
});
}).trigger( "change" );
工作演示
将JS替换为:
$(document).ready(function () {
$( ".hide" ).change(function() {
var str = [];
$('[class^=cell]').show();
$( ".hide option:selected" ).each(function() {
var vq = $( this ).val();
$('.cell'+vq).hide();
});
})
.trigger( "change" );
});
$(document).ready(function () {
$( ".hide" ).change(function() {
var value = $( this ).val();
$('[class^=cell]').hide();
$( ".cell" + value ).show();
})
});
Fiddle
相关文章:
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- 数据表-隐藏/显示列
- $scope变量,ng隐藏/显示
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- JQuery隐藏/显示无法正常工作
- 隐藏/显示下面的分区根据是否选择某个选项进行选择
- 使用类而不是id在JavaScript中隐藏显示
- 我想隐藏/显示我的SVG元素,同时在anguarJS中使用它
- 隐藏/显示图像
- Javascript 中的表 - 隐藏/显示列
- 仅使用Javascript隐藏/显示元素,而不会弄乱DOM
- 隐藏/显示 js 代码不会在 IE8 或更低版本上运行
- Magento:根据所选国家/地区隐藏/显示输入字段
- 货到付款选择隐藏/显示付款方式
- "隐藏/显示”;元素和更改按钮背景图像
- Bootstrap Collapse.js切换菜单的隐藏/显示
- 如何隐藏/显示<面板>使用jquery
- 在php中隐藏/显示切换回声结果
- 如何使用jquery使2个按钮切换css,而只使用1个按钮.不显示隐藏/显示
- JQuery隐藏/显示不起作用