Pertanyaan uji jika anak pertama


Saya sedang menguji untuk melihat apakah baris dalam tabel adalah anak pertama. Sejauh ini saya punya:

    //the loop works
$('#GridFolderPopup').find('tr').each(function () {

    if ( $(this).is(:first) == true ) //this is the faulty line
    {
         $(this).addClass('GridFolderRow');
    };
});

Ada saran?

Terima kasih


9
2018-02-16 04:54


asal


Jawaban:


Ini mungkin solusi:

$('#GridFolderPopup tr:first').addClass('GridFolderRow');

Juga kurangi kode banyak.


5
2018-02-16 05:17



Mencoba .is(':first') dari pada .is(:first).

Anda mungkin membingungkan Javascript dengan Ruby: di Javascript, titik dua tidak dapat digunakan seperti ini (di luar string).

sunting
Juga, dalam kasus Anda ':first-child' pemilih mungkin lebih tepat. Lihat dokumen tentang perbedaannya

http://api.jquery.com/first-child-selector/
http://api.jquery.com/first-selector/


26
2018-02-16 04:55



Cukup meminta anak pertama dari table/tbody aku s banyak lebih efisien daripada menguji setiap baris di dalamnya. Semakin besar meja, semakin besar perbedaannya.

Karena itu:

  • jika Anda menghendaki "lihat apakah a [diberikan] baris di meja adalah anak pertama ":

    if ($(a_given_row).prev().length === 0) {
        // no element before this row, so it's the first one.
    }
    
  • jika Anda ingin mendapatkan baris pertama tabel:

    // Directly ask the DOM for the first element child of the table/tbody
    var firstRow = a_given_table.firstChild;
    do {
       firstRow = firstRow.nextSibling;
    } while (firstRow.nodeType !== 1)
    
    // If you don't need to support IE8-, you can use this single line instead:
    var firstRow = a_given_table.firstChildElement;
    

    Lihat perbandingan kinerja di sini: http://jsperf.com/get-first-child-element


2
2017-09-02 17:47



Coba kode berikut

var allRows=$('#GridFolderPopup').find('tr');
$.each(allRows,function(cntr,value){
            if(cntr==0)
                 $(this).addClass('GridFolderRow');
});

0
2018-02-16 05:01



$('#GridFolderPopup').find('tr').eq(0).addClass('GridFolderRow');

0
2018-02-16 12:00