JQuery может выбрать по правилу CSS, не классу?

typedef - ваш друг

. Вернувшись и посмотрев на многие другие ответы, я обнаружил, что более глубокое объяснение в порядке, так как многие другие ответы либо страдают от проблем с производительностью, либо вынуждают вас используйте необычный или обременительный синтаксис для объявления массива или доступа к элементам массива (или всему выше).

Во-первых, этот ответ предполагает, что вы знаете размеры массива во время компиляции. Если вы это сделаете, то это лучшее решение, так как оно обеспечит максимальную производительность и позволит использовать стандартный синтаксис массива для доступа к элементам массива.

Причина, по которой это дает лучшую производительность, заключается в том, что она распределяет все массивы как непрерывный блок памяти, что означает, что у вас, вероятно, будет меньше пропусков страниц и лучшая пространственная локальность. Выделение в цикле может привести к тому, что отдельные массивы будут разбросаны по нескольким несмежным страницам через пространство виртуальной памяти, поскольку цикл выделения может быть прерван (возможно, несколько раз) другими потоками или процессами или просто из-за усмотрения распределитель заполняет небольшие, пустые блоки памяти, которые, как оказалось, доступны.

Другими преимуществами являются простой синтаксис объявления и стандартный синтаксис доступа к массиву.

В C ++ с использованием нового:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {

typedef double (array5k_t)[5000];

array5k_t *array5k = new array5k_t[5000];

array5k[4999][4999] = 10;
printf("array5k[4999][4999] == %f\n", array5k[4999][4999]);

return 0;
}

Или C-стиль с использованием calloc:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {

typedef double (*array5k_t)[5000];

array5k_t array5k = calloc(5000, sizeof(double)*5000);

array5k[4999][4999] = 10;
printf("array5k[4999][4999] == %f\n", array5k[4999][4999]);

return 0;
}
24
задан TylerH 18 October 2019 в 07:01
поделиться

2 ответа

$(".container .component").each(function()
{
    $(".container", this).each(function() {
        if($(this).css('width') == 'auto')
        {
            $(this).css('border', '1px solid #f00');
        }
    });
});

Подобный другому ответу, но так как компоненты могут также иметь несколько контейнеров, также нуждается в .each () регистрация здесь также для ширины.

19
ответ дан 28 November 2019 в 23:34
поделиться
$(".container .component").each(function() {
    if ($(".container", this).css('width') === "auto")
        $(".container", this).css('border', '1px solid #f00');
});
4
ответ дан 28 November 2019 в 23:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: