如何在 JavaScript for-in 循环的每次迭代中相对递增 CSS 值
How do I relatively increment a CSS value on each iteration of a JavaScript for-in loop?
我试图在循环的每次传递时增加一个左边距值。这是如何实现的?
这是JSFiddle,这是我正在尝试做的事情:
var myObj = {
"dog":"pony",
"sass":"tude",
"war":"peace"
};
for (i in myObj) {
$('#mainDiv').append("<p>" + i + "</p>");
$('p').css("marginLeft","++20px");
}
如何让每个<p>
标签比它前面的<p>
标签多 20px?
更改
$('p').css("marginLeft","++20px");
自
$('p').each(function() {
var thisp = $(this);
thisp.css("marginLeft", thisp.css("marginLeft") + 20);
});
您可以在循环之外使用变量来跟踪递增的内容。如果我理解正确的话,您也没有在循环中正确获得正确的 p 标签。
var myObj = {
"dog":"pony",
"sass":"tude",
"war":"peace"
};
var lastMargin = 0;
for (i in myObj) {
$('#mainDiv').append("<p class='"+i+"'>" + i + "</p>");
lastMargin += 5;
$("."+i).css("marginLeft",lastMargin+"px");
}
您显然可能希望将 :nth-child 与 i 变量一起使用,而不是类。
创建一个保留计数的变量。
另外,只针对最后一个 p(最后一个添加):
var myObj = {
"dog":"pony",
"sass":"tude",
"war":"peace"
},
count = 0;
for (i in myObj) {
$('#mainDiv').append("<p>" + i + "</p>");
$('p').last().css("marginLeft",(20 * count) + 'px');
count++
}
小提琴 : http://jsfiddle.net/3hxDK/4/
您似乎试图让每个后续段落都比上一个段落缩进更多?
如果是这样,您需要单独引用该段落。
var count = 0;
for (i in myObj) {
$("<p>" + i + "</p>").
css('marginLeft', count + "px").
appendTo($('#mainDiv'));
count += 20;
}
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用递归属性迭代保留属性结构
- 正在停止.在jquery中的特定时间间隔内,每次迭代的每次执行
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 主干-从模板中迭代的集合中获取特定的模型
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 什么's是在javascript中迭代项的最佳方式
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- jQuery-迭代不正确?(太长,无法执行)
- 每个$.,循环获胜't逐个迭代HTML元素
- 如何在Jquery中迭代JSON数组
- 如何在 JavaScript for-in 循环的每次迭代中相对递增 CSS 值