【发布时间】:2014-03-25 18:13:35
【问题描述】:
假设我有复选框 x、y、z 和 <div> 元素以及对应的 id 属性。
我有 x、y、z 组中的产品,并且这些组有类。但是clearfix 类适用于不同位置的所有产品(因为我循环浏览产品)所以我应该认识到 id 和其他东西的区别。
如果选中了一个复选框,它应该显示相关的 div(如果是x,则显示<div id='x'>)。如果不是,则不应显示它们。如果 x 和 y 被选中,则显示 x、y 并隐藏 z。
所以它应该与多个一起工作。这是导致问题的我的 div 和 clearfix 样式:
.clearfix:after {
clear: both;
}
.clearfix {
zoom: 1;
display: block;
}
.clearfix:after{
display: block;
content: ".";
clear: both;
font-size: 0;
line-height: 0;
height: 0;
overflow:hidden;
}
<div class="reltitles" id="<?php echo $array[$key][0]; ?>" style="<?php if($array[$key][1]==0){?> display:none;<?php }else {?>display:block;<?php }?>">
<font class="resultHeader">
(<?php echo $array[$key][1];?>) <?php echo $array[$key][0]; ?>
</font>
</div>
<div class="clearfix" value="<?php echo $array[$key][0];?>" name="<?php echo $array[$key][0];?>" id="<?php echo $array[$key][0];?>">
<?php //code for showing items
以下是未能隐藏明确修复的脚本:
$(document).ready(function(){
$('input[type="checkbox"]').click(function () {
var variable = $(this);
$(".clearfix").each(function () {
if( $(this).attr("value") != variable.val() ) {
var id = $(this).attr("value");
var x = document.getElementById(id);
if ( x.style.display == "block" ) {
x.style.display = "none";
} else {
x.style.display = "block";
}
$(this).hide();
}
});
});
});
第一次应该显示所有项目,然后如果用户绑定以过滤它们,则开始操作。
【问题讨论】:
-
如果你只是发布渲染的html(没有php),修复js会容易得多。 jsfiddle.net 也不错
-
如果你想考虑更新
-
@Nickparsa 你能分享你生成的 HTML 吗?您在此处提供的代码不包含任何复选框,也不包含它们与 DOM 中
<div>元素之间的关系。 -
我解决了我的问题你可以看到我的回答你是什么意思?你想让我显示页面源代码吗?
-
@Nickparsa 当浏览器加载此页面时,所有的 PHP 都已处理完毕,只剩下 HTML 标签/属性。我想看看你剩下的 HTML。我怀疑我们可以想出比您在此处发布的答案更好的方法
标签: javascript php jquery html css