我想将jQuery应用于通过PHP / MySQL循环生成的动态类。
我在JSfiddle上有一个非动态的工作版本:jsfiddle.net/TXJA5/1/
在示例中,cat_fruit
,cat_vegetable
和cat_cereal
将在PHP循环中回显;类似的东西:
<div class="category cat_<?php echo $category; ?>">
<p><?php echo $category_label; ?></p>
</div>
然后,在以下列中,将有包含与该类别相关联的项目的div:
<div class="column">
<div class="item cat_<?php echo $category; ?>">
<p><?php echo $item[0]; ?></p>
<p><?php echo $item[0]; ?></p>
</div>
</div>
那么,为什么?好吧,虽然数据是可变的,并且“items”存在于一列中,而“items”存在于另一个div的其他列中,但我需要通过jQuery识别相关的div以使它们具有相同的高度(使用equalizeCols - 请参阅小提琴;你会明白的。)
n.b。尽管有明显的列/行关系,但这不是表格的原因。我认为(烦恼)并尝试了它,但它不适用于实际项目的需要。
提前感谢您提供的任何帮助。经过多年的学习,这是我关于SO的第一个问题 - 这个社区非常棒。我在这里发现了一些问题,这些问题可能会让我看起来像副本一样,但是他们不能帮助我到那里来!
答案 0 :(得分:2)
<div class="column">
<div class="category" data-cat="<?php echo $category; ?>">
<p><?php echo $item[0]; ?></p>
<p><?php echo $item[0]; ?></p>
</div>
</div>
我想你可以在第一列中添加数据属性(或id),然后使用jQuery循环遍历这些属性:
$('.category').each(function(){
var category = $(this).attr('data-cat');
$(".cat_"+category).equalizeCols();
});
答案 1 :(得分:0)
您可以按照与代码的HTML部分相同的方式循环类别:
<?php for(...){ ?>
var $els = $(".cat_<?php echo $category?>").equalizeCols();
<?php } ?>
如果我理解你的问题并发出问题,这就是解决方案。如果这不是您的问题,请更具体。