jQuery를 사용하여 두 개의 특정 행 사이의 테이블 행 수를 계산합니다.

StackOverflow https://stackoverflow.com/questions/613024

  •  03-07-2019
  •  | 
  •  

문제

<table>
  <tr id="parent_1">
    <td>Parent 1</td>
  </tr>
  <tr class="child">
    <td>Child 1</td>
  </tr>
  <tr class="child">
    <td>Child 2</td>
  </tr>
  ...
  <tr id="parent_2">
    <td>Parent2</td>
  </tr>
  ...
</table>

jQuery를 사용하여 Parent_1과 Parent_2 사이의 자식 행의 수를 어떻게 찾을 수 있습니까?

편집 : 죄송합니다. 이것이 단지 예일 뿐이라는 것을 분명히하지 않았습니다. 테이블에는 수의 상위 행과 어린이 행이 포함될 수 있습니다.

도움이 되었습니까?

해결책

이것은 당신이 원하는 것을 얻을 것입니다

var childCount = ($('#parent_2').get(0).rowIndex - $('#parent_1').get(0).rowIndex) - 1;

다른 팁

이것:

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

번역 : 클래스의 모든 요소와 일치합니다 child 그것은 형제의 형제입니다 ~ 후에, #parent_1, 그러나 형제 자매는 아닙니다. #parent_2.

떠오르는 첫 번째 아이디어. 문제의 요소를 선택할 수있는 정교한 방법이 있다고 확신합니다.

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

가장 좋은 방법은 아마도 수동으로 계산하는 것입니다. 계산을했을 때 헤어질 수 있기 때문에 더 빨라질 것입니다 (테이블이 크면 유용합니다).

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

어떤 사람들은 여기에 좋은 답변을 가지고 있습니다. 나는 이미 내 시작을 시작 했으므로 추가 정보를 위해 추가했습니다.

$(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 광산 편집은 얼마나 많은 부모가 있는지 신경 쓰지 않으며, 배열이 충분히 커지는 한 계속 계산할 것입니다.

Parent_1 및 Parent_2가 각각 시작 및 엔드 행이라고 가정합니다.

$("#parent_1").siblings().size() - 1
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top