Javascript 获取div元素内的列表等高

Javascript 获取div元素内的列表等高,javascript,jquery,html,Javascript,Jquery,Html,请看看这个。我有两对无序列表,每一对都在div元素中。下面的代码可以找到具有相同类的li,获取最大高度并将所有类的高度设置为相同。但我想将其限制为获取每个div元素中每对列表的最大高度 我认为这一行给了我一个问题,因为它获取了文档中具有相同类的所有列表: var elems = $('.pricing-table ul li.' + elem.className), 我认为我不能使用$(this)并像$(this+elem.className)那样更新它。有什么建议吗 Jquery脚本:

请看看这个。我有两对无序列表,每一对都在div元素
中。下面的代码可以找到具有相同类的
li
,获取最大高度并将所有类的高度设置为相同。但我想将其限制为获取每个div元素中每对列表的最大高度

我认为这一行给了我一个问题,因为它获取了文档中具有相同类的所有列表:

var elems   = $('.pricing-table ul li.' + elem.className),
我认为我不能使用$(this)并像$(this+elem.className)那样更新它。有什么建议吗

Jquery脚本:

$(document).ready( function(){
    $('.pricing-table ul li').each(function(i, elem) {
        var elems   = $('.pricing-table ul li.' + elem.className),
            heights = $.map(elems, function(li) {
                return $(li).height();
            }),
            max     = Math.max.apply(null, heights);

        elems.height(max);
    });
});
HTML


    青铜 2003年
  • 起动器包装
  • 非洲(文本)
  • 文本
  • 银色
  • 2004年 中间包 亚洲
  • 文本
    青铜 2003年
  • 起动器包装
  • 非洲(文本)
  • 文本
  • 银色
  • 2004年 中间包 亚洲
  • 文本

您只需要获取当前
元素的后代
li
。定价表
元素,因此您必须先迭代后者:

$(document).ready(function () {
    $('.pricing-table').each(function (i, e) {
        $(e).find('ul li').each(function (i, elem) {
            var elems = $(e).find('ul li.' + elem.className),
                heights = $.map(elems, function (li) {
                    return $(li).height();
                }),
                max = Math.max.apply(null, heights);

            elems.height(max);
        });
    });
});
…或者类似的东西


(还是有点难看,因为它会在
li
上迭代多次,所以这只是一个“快速修复”——但我不想在这里想任何更复杂的事情,因为我还没有第一次听到一个令人信服的论点,为什么这些数据没有首先使用表标记…?)

@adeneo:Ah,使用
ul:first
很好,这应该避免像我的惰性修复程序那样多次检查
li
。此外,还可以使用
每个
元素引用(
p_table
)来直接限制选择,而不是使用
。查找
是一种很好的(r)方式。
$(document).ready(function () {
    $('.pricing-table').each(function (i, e) {
        $(e).find('ul li').each(function (i, elem) {
            var elems = $(e).find('ul li.' + elem.className),
                heights = $.map(elems, function (li) {
                    return $(li).height();
                }),
                max = Math.max.apply(null, heights);

            elems.height(max);
        });
    });
});