Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 jQuery获取特定元素中特定元素的所有宽度,并将其相加_Javascript_Jquery_Css - Fatal编程技术网

Javascript jQuery获取特定元素中特定元素的所有宽度,并将其相加

Javascript jQuery获取特定元素中特定元素的所有宽度,并将其相加,javascript,jquery,css,Javascript,Jquery,Css,我正在为我的网格系统创建一个函数来检查行中的大小元素其宽度s是否大于100%,它会隐藏该行 以下是我的HTML的外观: <div class="row"> <div class="column size-1"><p>column-size-1</p></div> <div class="column size-1"><p>co

我正在为我的网格系统创建一个函数来检查
行中的
大小
元素
宽度
s是否大于
100%
,它会隐藏该行

以下是我的HTML的外观:

            <div class="row">
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
                <div class="column size-1"><p>column-size-1</p></div>
            </div>
            <div class="row">
                <div class="column size-2"><p>column-size-2</p></div>
                <div class="column size-2"><p>column-size-2</p></div>
                <div class="column size-2"><p>column-size-2</p></div>
                <div class="column size-2"><p>column-size-2</p></div>
                <div class="column size-2"><p>column-size-2</p></div>
                <div class="column size-2"><p>column-size-2</p></div>
            </div>
想要的输出:

100%
100%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
16.666667%
16.666667%
16.666667%
16.666667%
16.666667%
16.666667%
实际输出:

100%
100%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
8.333333%
16.666667%
16.666667%
16.666667%
16.666667%
16.666667%
16.666667%

在分别记录每个元素的大小时,仍然需要将它们相加。 此外,您还需要为每一行分别执行此操作

function check() {
    var rows = $('.row');
    rows.each(function(i, e) { //here "this" is the row
        var columns = $(e).find('[class*="size-"]');
        var sum;
        columns.each(function (i, el) { //here "this" becomes the column.
            //If you want to access the row, you need the "e" variable!
            var width = $(el).width(), 
            inProcent = width / $(el).parent().width() * 100;
            sum += inProcent;
        }); 
        console.log(sum);
    }
}

是的,好的,但是我该怎么做呢?:t汉克斯,它起作用了:D但是那些函数的
i,e
参数是什么S@Dreiba它们代表
索引
元素
。Index是集合中的索引,element是元素本身,与
每个
相同。通过执行
$(e)
再次将其包装到jQuery对象中,以便jQuery函数在其上可用。顺便说一句,如果我的回答有帮助,别忘了投赞成票;)@Dreiba将
width()
替换为
outerWidth(true)
。请参阅:@Dreiba,这是因为由于计算机的二进制性质,浮点值在编程语言中并非100%准确。浮点运算越多,最终的偏差就越大。不过,最好只对你的最终结果进行四舍五入。但不要以为这会提高你的准确性。如果您需要更精确的浮点数,可以使用其他解决方案。现在,您可以使用
Math.round(sum)
。我建议每个
都运行两次
;每行一次。在
每个
外部声明一个变量,并在
每个
内部递增该变量