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

Javascript 更改数组项的子元素(语法),javascript,jquery,html,arrays,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使用同一个类。 在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));   

}

乱数假文
多洛坐
艾米特。
乱数假文
多洛坐
艾米特。
var allPlanes=$('.plane');
对于(变量i=0;i
(不要介意名字。这只是一个例子…)

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


我的小提琴:

您不能在
jQuery
对象和字符串之间使用
+
运算符

正确的方法是:

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

每个查询都转换为:选择
jQuery
对象
onePlane

内的
.winX
所有元素,您不能在
jQuery
对象和字符串之间使用
+
运算符

正确的方法是:

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

每个查询都转换为:使用
.winX
选择
jQuery
对象
onePlane
中的所有元素,我将在嵌套中使用所有相同的类名,然后只需执行
$('.plane:eq(0).win:eq(2).html()

alert($('.plane:eq(0).win:eq(2)'.html())

乱数假文
多洛坐
艾米特。
乱数假文
多洛坐
艾米特。

我会在嵌套中使用所有相同的类名,然后只需执行
$('.plane:eq(0).win:eq(2)').html()

alert($('.plane:eq(0).win:eq(2)'.html())

乱数假文
多洛坐
艾米特。
乱数假文
多洛坐
艾米特。

如果您的类是固定的,那么您可以使用此代码

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

如果您的类是固定的,那么您可以使用此代码

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

您可以使用
平面
类的
每个
循环

$('.plane').each(function(){
    baseHeight = 10;
    $(this).find(".win1").css("height", parseInt(baseHeight*1));  
    $(this).find(".win2").css("height", parseInt(baseHeight*2));  
    $(this).find(".win3").css("height", parseInt(baseHeight*3));  
});

您可以使用
平面
类的每个
循环

$('.plane').each(function(){
    baseHeight = 10;
    $(this).find(".win1").css("height", parseInt(baseHeight*1));  
    $(this).find(".win2").css("height", parseInt(baseHeight*2));  
    $(this).find(".win3").css("height", parseInt(baseHeight*3));  
});

将脚本更改为:

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");          
}


编辑::只是一个旁注:所有这些方法都是有效的,但这并不意味着它们是最好/最有效的方法。自由地使用你最喜欢的,理解它并尝试使用它或使它适应你的个人情况。“最简单”的方法当然是第一种,但也是最长的方法。

将脚本更改为:

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");          
}


编辑::只是一个旁注:所有这些方法都是有效的,但这并不意味着它们是最好/最有效的方法。自由地使用你最喜欢的,理解它并尝试使用它或使它适应你的个人情况。“最简单”的方法当然是第一种,但也是最长的方法。

这不是更好的方法吗:

var基数=10;
$('.plane>div').css('height',function(){
返回基数*($(this).index()+1)
});
.plane{
背景色:#ccc;
边框:实心1px#cdcdcd;
边缘底部:15px;
}
.plane>.win1{背景色:#ddd;}
.plane>.win2{背景色:#eee;}
.plane>.win3{背景色:#fff;}

乱数假文
多洛坐
艾米特。
乱数假文
多洛坐
艾米特。

这个不是更好吗:

var基数=10;
$('.plane>div').css('height',function(){
返回基数*($(this).index()+1)
});
.plane{
背景色:#ccc;
边框:实心1px#cdcdcd;
边缘底部:15px;
}
.plane>.win1{背景色:#ddd;}
.plane>.win2{背景色:#eee;}
.plane>.win3{背景色:#fff;}

乱数假文
多洛坐
艾米特。
乱数假文
多洛坐
艾米特。

请共享js代码。如果您使用jQuery,则不需要for循环:@briosheje,您的代码不适合我,因为我需要记住更多参数。e、 g.内部div有不同的高度,这取决于父元素的高度。我不明白为什么它不工作,但它很好;)不管你说“我有更多的括号要记住”是什么意思,上面的提琴正在工作,我把你自己的html作为源代码!请共享js代码。如果您使用jQuery,则不需要for循环:@briosheje,您的代码不适合我,因为我需要记住更多参数。e、 g.内部div有不同的高度,这取决于父元素的高度。我不明白为什么它不工作,但它很好;)不管你说“我有更多的括号要记住”是什么意思,上面的提琴正在工作,我把你自己的html作为源代码!我在这里得到了很多正确和有用的答案,但我不得不接受其中一个。所以我选择了你的作为第一个给定的,这对给定的代码也没有太大的改变。。谢谢!我也选择这一个作为最佳答案,因为我只是要求对给定代码使用正确的语法,而不是完全重新构建;-))我在这里得到了很多正确和有用的答案,但我不得不接受其中一个。所以我选择了你的作为第一个给定的,这对给定的代码也没有太大的改变。。谢谢!我也选择这一个作为最佳答案,因为我只是要求对给定代码使用正确的语法,而不是完全重新构建;-))很高兴能展示不止一种方法来解决这个问题,谢谢!但是:您的代码不适合我,因为我有更多的参数用于计算。例如,内部div具有不同的高度,具体取决于父元素的高度。所以我不能给所有内部元素相同的高度,那么你可以