Количество количества строк таблицы между двумя определенными строками с jQuery

Заменить внутренний цикл for на matrixA[row - 1][col - 1] = 1;. Не забудьте проверить, находятся ли столбцы и строки между 1 и 3.

11
задан Brian Tompsett - 汤莱恩 22 September 2016 в 21:49
поделиться

6 ответов

Это получит Вас, что Вы хотите

var childCount = ($('#parent_2').get(0).rowIndex - $('#parent_1').get(0).rowIndex) - 1;
16
ответ дан 3 December 2019 в 02:21
поделиться

Это:

$('#parent_1 ~ .child:not(#parent_2 ~ *)').size()

Перевод: соответствуйте всем элементам класса child это - одноуровневый элемент и прибывает после, #parent_1, но не те, которые являются одноуровневым элементом и приезжают после #parent_2.

11
ответ дан 3 December 2019 в 02:21
поделиться

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

var rowid1 = 'parent_1';
var rowid2 = 'parent_2';

var rows = $("#"+rowid1).parent().find('tr');
var count = 0;

for (var i = 0; i < rows.size(); i++) {
    var el = rows.get(i);

    // Done counting
    if (el.id == rowid2) break;

    if (el.id != rowid1) {
        ++count;
    }
}

alert("There are " + count + " rows between");
2
ответ дан 3 December 2019 в 02:21
поделиться

Первая идея, которая пришла на ум. Я уверен, что существует некоторый тщательно продуманный способ выбрать рассматриваемые элементы, (значение, что необходимо было бы просто сделать $ (селектор) .length), но я не могу думать о том первое, что пришло на ум.

var doCount = false;
var numberOfChildren = 0;

$('tr').each(function(i){
    if($(this).is("#parent_2"))
        doCount = false;

    if(count)
        numberOfChildren++;

    if($(this).is("#parent_1"))
        doCount = true;
});
2
ответ дан 3 December 2019 в 02:21
поделиться

Принятие parent_1 и parent_2 является запуском и строками конца соответственно:

$("#parent_1").siblings().size() - 1
0
ответ дан 3 December 2019 в 02:21
поделиться

У некоторых людей есть некоторые хорошие ответы здесь, я был уже запущен на моем, таким образом плохо просто добавляют его для получения дополнительной информации.

$(document).ready(function() {
    n = 0;
    var x = new Array(0,0,0);

    $("table tr").each(function(i)
    {
        if($(this).hasClass("child"))
        {
            x[n] += 1;
        }
        else
        {
            n += 1;
        }
    });

    for(var y = 0; y < x.length; y++)
    {
        alert(x[y]);
    }
});

btw шахта РЕДАКТИРОВАНИЯ не заботится, сколько родители там, это будет просто продолжать рассчитывать как долго, массив является достаточно большим.

2
ответ дан 3 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

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