如何选择类的每个实例的子类
How can I select descendents of each instance of a class?
这是我的代码的简化版本。
<div class="row">
<div class="column">
</div>
<div class="column">
</div>
</div>
<div class="row">
<div class="column">
</div>
</div>
<div class="row">
<div class="column">
</div>
<div class="column">
</div>
<div class="column">
</div>
</div>
我试图在每个"行"DIV中添加每个"列"DIV的高度。换句话说,我想在第一个"行"中添加两个"列"的DIV;第二个"行"DIV中的一个"列"DIV;以及第三个"行"DIV中的三个"列"DIV。我该怎么做?
如果我理解你的要求。。。
// Loop through each .row...
$('.row').each(function(i) {
var totalHeight = 0;
// Loop though descendant .column's in this .row...
$(this).find('.column').each(function() {
// Add .column height to total...
totalHeight += $(this).height();
})
// do something with the total...
console.log('columns in row ' + i + ' have a total height of ' + totalHeight + 'px');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="row">
<div class="column">
Column
</div>
<div class="column">
Column
</div>
</div>
<div class="row">
<div class="column">
Column
</div>
</div>
<div class="row">
<div class="column">
Column
</div>
<div class="column">
Column
</div>
<div class="column">
Column
</div>
</div>
(单击run code snippet
查看工作示例(;
function SetColumnHeightCtrl($) {
var rows = $('.row');
rows.each(function(index) {
var height = 0;
var $row = $(this);
$row.find('.column').each(function() {
var $column = $(this);
height += $column.height();
});
console.log(`${index} row height:`, height);
$row.css('height', height);
});
}
jQuery(document).ready(SetColumnHeightCtrl);
.row { background: lightseagreen; display: flex; padding: 5px; margin-bottom: 1em; }
.column { background: lightcoral; margin: 0 5px; flex: 1 1 auto; }
.column:nth-child(odd) { height: 30px; }
.column:nth-child(even) { height: 70px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="column"></div>
<div class="column"></div>
</div>
<div class="row">
<div class="column"></div>
</div>
<div class="row">
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
</div>
一个简单的$("div.row>div.column")
就足以选择div with class row
内的每个div with class column
,并使用.height()
来计算当前高度。
代码:
$("div.row>div.column").each(function() {
sum += ($(this).height());
});
$(function() {
console.log(calc());
});
function calc() {
var sum = 0;
$("div.row>div.column").each(function() {
sum += ($(this).height());
});
return sum;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
1
<div class="row">
a
<div class="column">
b
</div>
<div class="column">
c
</div>
d
</div>
2
<div class="row">
e
<div class="column">
f
</div>
g
</div>
3
<div class="row">
h
<div class="column">
i
</div>
j
<div class="column">
k
</div>
l
<div class="column">
m
</div>
n
</div>
4
$(document).ready(function() {
var height = 0;
$('.row').children('.column').each(function() {
height += $(this).height();
});
console.log(height);
});
.column {
height: 300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="column">
</div>
<div class="column">
</div>
</div>
<div class="row">
<div class="column">
</div>
</div>
<div class="row">
<div class="column">
</div>
<div class="column">
</div>
<div class="column">
</div>
</div>
返回1800
相关文章:
- 是否可以从父类访问子类的属性
- 如何检查 JavaScript 对象是否直接是“{}”实例,而不是子类
- 在主类中分配类的实例并保留子类实例的上下文
- 为什么 Object#create 必须在子类的实例化之前
- RxJS 5子类Observable-静态方法返回父类的实例
- 用父属性实例化子类的Javascript
- Javavscript在实例化时更改子类属性
- Javascript:从返回超类实例的函数中设置子类原型的好处
- 为什么不't在babel节点下的Error子类实例上的工作实例
- 如何在JavaScript中进行继承,而不会在子类的所有实例之间共享父类的相同实例?
- 为什么基类的对象属性与子类的所有实例共享?
- JavaScript:从父类实例中创建子类
- 为什么原型继承子类是另一个子类的实例?
- 如何获取对象's类名,当它是子类的实例时
- 如何从子类访问超类实例变量
- 在ES6 / ES2015中容易实例化子类数组
- 如何选择类的每个实例的子类
- 我可以实例化一个超类,并根据提供的参数实例化一个特定的子类吗
- 适当地扩展数组,保持子类的实例
- 子类如何获得超类'实例变量