Javascript 获取div元素内的列表等高
请看看这个。我有两对无序列表,每一对都在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脚本:
中。下面的代码可以找到具有相同类的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);
});
});
});