我正在制定一个时间表,用户可以在其中更新营业时间。
我每天选择带有“打开”或“关闭”的框,然后选择带有“从”和“直到”的框。
我想这样做,以便如果用户选择例如星期三:“已关闭”,则“ till”和“选择”框(此列表项.time_row
)处于隐藏状态。
我每天的HTML:
<div class="time_row">
<label>Monday:</label>
<li>
<select>
<option value="open">Open</option>
<option value="closed">Closed</option>
</select>
</li>
<li>
From:
</li>
<li>
<select>
<option value="00:00">00:00</option>
<option value="01:00">01:00</option>
etc
</select>
</li>
<li>
Till:
</li>
<li>
<select>
<option value="00:00">00:00</option>
<option value="01:00">01:00</option>
etc
</select>
</li>
</div><!--End time_row-->
我试图用jQuery做到这一点,.slice()
但是他在此选择框之后和之前隐藏了所有列表元素?
// Account time table
$('.time_row select').change( function() {
if( $(this).val() == 'closed' ) {
$('.time_row li').slice(3).hide();
}
});
有人可以帮我弄这个吗?
谢谢!
我假设您正在寻找类似的东西:
$('.time_row').find('select:first').change(function() {
$(this)
.closest('.time_row')
.find('li')
.slice(1)
.toggle(this.value === 'open');
}).change();
在这种情况下,一旦change
发生事件,您将<select>
使用class搜索最接近的父元素.time_row
。然后拾取所有内部<li>
元素,使用从列表中删除第一个元素,slice(1)
并根据条件显示或隐藏其余元素this.value === 'open'
。
您还应该检查您的标记并将所有<li>
元素放入其中<ul>
以使其有效。
在更新的答案中,我包括了正确的选择器以仅选择第一个<select>
元素(忽略时间选择器),并在绑定之后添加了默认状态和触发change
事件。
演示: http : //jsfiddle.net/mPNCA/1/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句