Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法访问嵌套的循环元素_Javascript_Jquery - Fatal编程技术网

Javascript 无法访问嵌套的循环元素

Javascript 无法访问嵌套的循环元素,javascript,jquery,Javascript,Jquery,我正在尝试访问嵌套循环中的元素。 我已经使用$(this)访问了第一个循环的loop元素,但是不能使用$(this)访问secnod元素。 如何访问第二个元素 $('.buttons').each(function(){ width = 100 / $(this).length; $(this).each(function () { $(this).width = width + '%'; }); }); 上面的代码设置了第一个循环的第一个循环元素,而不

我正在尝试访问嵌套循环中的元素。 我已经使用$(this)访问了第一个循环的loop元素,但是不能使用$(this)访问secnod元素。 如何访问第二个元素

$('.buttons').each(function(){
    width = 100 / $(this).length;
    $(this).each(function () {
        $(this).width = width + '%';
    });
});

上面的代码设置了第一个循环的第一个循环元素,而不是内部元素。

根据您的注释,您试图访问每个类中带有按钮的子div

$('.buttons').each(function(){
    var children = $(this).find('div'), width = 100 / children.length;
    children.each(function () {
        $(this).width(width + '%');
    });
});

根据您的评论,您试图访问每个类中带有按钮的子div

$('.buttons').each(function(){
    var children = $(this).find('div'), width = 100 / children.length;
    children.each(function () {
        $(this).width(width + '%');
    });
});
“this”始终是每个循环上下文中的interator。因此,要引用外部循环的interator,必须将其引用指定给变量

$('.buttons').each(function(){
    var jqOuterThis = $(this);
    var outerWidth = 100 / $(this).length;
    $(jqOuterThis).each(function () {
        $(jqOuterThis).width(outerWidth + '%');
    });
});
“this”始终是每个循环上下文中的interator。因此,要引用外部循环的interator,必须将其引用指定给变量

$('.buttons').each(function(){
    var jqOuterThis = $(this);
    var outerWidth = 100 / $(this).length;
    $(jqOuterThis).each(function () {
        $(jqOuterThis).width(outerWidth + '%');
    });
});

另一种方法是利用“每个”的参数

通过这种方式,您可以在任何进一步的嵌套中使用$(element)(除非以后使用每个元素时被相同的参数名覆盖)


“i”是迭代器变量。如果是在第三个元素上,我将是2,第四个元素将是3,等等。

另一种方法是利用“每个”的参数

通过这种方式,您可以在任何进一步的嵌套中使用$(element)(除非以后使用每个元素时被相同的参数名覆盖)


“i”是迭代器变量。如果它在第三个找到的元素上,我将是2,第四个元素将是3,等等。

假设您的标记看起来像这样:

<div class="buttons">
    <div class="button"></div>
    <div class="button"></div>
    <div class="button"></div>
    <div class="button"></div>
</div>

假设您的标记如下所示:

<div class="buttons">
    <div class="button"></div>
    <div class="button"></div>
    <div class="button"></div>
    <div class="button"></div>
</div>

您希望$(这个)在内部循环中具体指的是什么?请您发布标记好吗?$(这个)只表示一个对象,因此它上的每个循环都是没有意义的。@Kundansinghchoushan那么我如何访问内部循环中的每个元素呢?另外,内循环是一堆div元素。第二个循环是干什么的?你希望$(这个)在内循环中指的是什么?你能发布标记吗?$(这个)只代表一个对象,因此它上的每个循环都是没有意义的。@kundansinghchoushan那么我怎么才能访问内循环中的每个元素呢?另外,内部循环是一组div元素,第二个循环是什么?
$(this).width
返回一个数字。你不能“设置”一个数字。这不是我应该做的,我应该使用jQuery的
width()
方法来设置它。我只是没有改变他的想法,因为快速查找似乎仍然有效:对不起,我说错了<代码>$(this)是一个jQuery对象
.width
是对jQuery
.width()
方法的引用。你不能“设置”一个函数。不能交换DOM属性和jQuery方法。如果您想设置DOM属性(我不建议这样做),正如您发布的链接所示,您可以使用
$(this)[0].style.width
,但这是不必要的。我在您的第一个示例中编辑了一个小问题,我将从您的答案中删除第一个代码示例,因为它只将所有
.button
的宽度设置为100%
$(此)。宽度
返回一个数字。你不能“设置”一个数字。这不是我应该做的,我应该使用jQuery的
width()
方法来设置它。我只是没有改变他的想法,因为快速查找似乎仍然有效:对不起,我说错了<代码>$(this)
是一个jQuery对象
.width
是对jQuery
.width()
方法的引用。你不能“设置”一个函数。不能交换DOM属性和jQuery方法。如果您想设置DOM属性(我不建议这样做),正如您发布的链接所示,您可以使用
$(this)[0].style.width
,但这是不必要的。我在您的第一个示例中编辑了一个小问题,我将从您的答案中删除第一个代码示例,因为它只将所有
按钮的宽度设置为100%