假设我有以下html:
<img onclick="showStruct(this)" class="expand" src="Images/Plus.png" data-hidden="true" style="display: none;">
<img onclick="showStruct(this)" class="expand" src="Images/Plus.png" data-hidden="false" style="display: inline;">
<img onclick="showStruct(this)" class="expand" src="Images/Plus.png" data-hidden="true" style="display: none;">
如果元素被隐藏,我将true
存储在data-hidden
字段中,因为我必须同时隐藏所有元素并将{state}存储在data-hidden
字段中,我确保我知道要再展示哪些。
即:
<img onclick="showStruct(this)" class="expand" src="Images/Plus.png" data-hidden="true" style="display: none;">
<img onclick="showStruct(this)" class="expand" src="Images/Plus.png" data-hidden="false" style="display: none;">
<img onclick="showStruct(this)" class="expand" src="Images/Plus.png" data-hidden="true" style="display: none;">
我要做的是,通过使用jquery,仅为display: inline;
的元素设置data-hidden: 'false'
?
我拥有的(有效):
$(".expanded").each
(function() {
if($(this).attr('data-hidden')=='false'){
$('.expanded').show();
}
});
我的问题是,是否有更好的(更有效的)方法,或者这是唯一的方法呢?
答案 0 :(得分:5)
答案 1 :(得分:1)
试试这个,
$(".expanded").filter(function(){
return $(this).data('hidden') == 'false';
}).show();