javascript - 更改数组项的子元素(语法)

标签 javascript jquery html arrays

我有几个使用相同类的 div。 在 div 中还有另外三个具有相同类的 div。

<div class="plane">
    <div class="win1">Lorem ipsum</div>
    <div class="win2">Dolor sit</div>
    <div class="win3">amet.</div>
</div>

<div class="plane">
    <div class="win1">Lorem ipsum</div>
    <div class="win2">Dolor sit</div>
    <div class="win3">amet.</div>
</div>

var allPlanes = $('.plane');


for (var i = 0; i < allPlanes.length; i++) {

    var onePlane = allPlanes[i];
    var baseHeight = 10;

    $(onePlane + " .win1").css("height", parseInt(baseHeight*1));        
    $(onePlane + " .win2").css("height", parseInt(baseHeight*2));
    $(onePlane + " .win3").css("height", parseInt(baseHeight*3));   

}

(不要介意名字。这只是一个例子......)

现在我用外部 div 创建了一个数组,我可以选择内部的单个 div。但是我没有得到内部子 div 的正确语法。 谁能帮忙?

我的 fiddle :http://jsfiddle.net/SchweizerSchoggi/559xvww6/

最佳答案

将脚本更改为:

var allPlanes = $('.plane');

var baseHeight = 10;
$(".plane > .win1").css("height", parseInt(baseHeight*1)+"px");        
$(".plane > .win2").css("height", parseInt(baseHeight*2)+"px");  
$(".plane > .win3").css("height", parseInt(baseHeight*3)+"px");

在这种情况下您不需要 for 循环。

更漂亮的方式:

var baseHeight = 10;

for (var i = 1; i <= 3; i++) {
     $(".plane > .win"+i).css("height", parseInt(baseHeight*i)+"px");          
}

http://jsfiddle.net/559xvww6/3/

如果您不想使用 for 循环并希望从数组进行动态配置:

var baseHeight = 10;
$.map([1,2,3], function(i) {
   $(".plane > .win"+i).css("height", parseInt(baseHeight*i)+"px");
}); 

http://jsfiddle.net/559xvww6/10/

编辑::附带说明:所有这些方法都是有效的,但这并不意味着它们是最好/最有效的方法。随意使用您最喜欢的那个,了解它并尝试使用它或根据您的个人情况调整它。 “最简单”的方法肯定是第一种,但也是最长的一种。

关于javascript - 更改数组项的子元素(语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28981495/

相关文章:

javascript - AngularJs onClick 防止滚动到顶部

javascript - 页面刷新后导航上的事件状态

javascript - 确定规则 : relate integer value to color #RGB

javascript - 某些 JavaScript 代码存在问题

jquery - 语法错误,无法识别 href 表达式

html - 如何在 1 个 li 元素内为多个文本框添加标签

html - 我如何使翻转卡与其他浏览器兼容

javascript - AngularJS:绑定(bind)回输入数组

javascript - 如何在普通 JS 中实现 jQuery .map() 的等效项?

javascript - 如何使用 Javascript 忽略 Zoom 中的特定元素