jquery每个用于隐藏元素


jquery-each for hidding elements

我有两个按钮

<div id="box1" class="alert alert-danger alert-dismissable">
<button id="1" aria-label="close" aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
1 test button
</div>
<div id="box2" class="alert alert-danger alert-dismissable">
<button id="2" aria-label="close" aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
2 test button
    </div>

好吧,用两个if语句来隐藏它们

if( $.cookie('box1') === 'closed' ) { 
  $('#box1').hide(); 
} 
if( $.cookie('box2') === 'closed' ) { 
  $('#box2').hide(); 
}

按钮越多越好,但这不起作用-为什么不起作用?:-|tnx

$('.close').each(function(id, element) {
    var id = $(element).attr('id');
    if( $.cookie('#box'+id) === 'closed' ) {
        $('#box'+id).hide();
    }
});
if( $.cookie('#box'+id) === 'closed' ) {

问题出在box之前的#。这是一个cookie,而不是元素的id,你不需要它。

只需删除if( $.cookie('#box'+id) === 'closed' ) { 之前的#

所以,它应该是这样的:

$('.close').each(function(id, element) {
    var id = $(element).attr('id');
    if( $.cookie('box'+id) === 'closed' ) {
        $('#box'+id).hide();
    }
});