2011-10-31 23 views
6

Bir sayfadaki birçok TABLO etiketi verildiğinde, seçilen bir tabloda TD'yi alt öğeyi nasıl seçebilirim.Bir çocuğun çocuğunu bulmak için jQuery .each() öğesini nasıl kullanırım?

Bu mantıklı, ama bu hata ile başarısız:

Error: uncaught exception: Syntax error, unrecognized expression: [object Object]tr 

Kodum

$(document).ready(function() { 
    var selectedTable = $('table').eq('9'); 

    $(selectedTable).css('border','10px solid green'); 

    $(selectedTable + 'tr td').each(function(i) { 
     $(this).css('border','10px solid blue'); 
    }); 

}); 

cevap

6

selectedTable bir jQuery nesnesi değil, bir dize.
Bunu bir seçicide kullanamazsınız.

selectedTable.find('tr td') 
3
selectedTable.find('tr td').each(function(i) { 
     $(this).css('border','10px solid blue'); 
    }); 

Ayrıca aşağıdaki gibi zincir olabilir: Ayrıca

selectedTable.css('border','10px solid green').find('tr td').each(function(i) { 
    $(this).css('border','10px solid blue'); 
}); 

, size $ (kullanmak gerekmez

Bunun yerine, jQuery'nin kastetmek API'sini kullanmak gerekir seçiciniz bir jquery nesnesini zaten döndürdüğü için tekrar selectedTable).

3

Tablonun alt öğelerini almak için .find() kullanın. Yapmakta olduğunuz sorun, selectedTable'un bir seçici dize değil, bir nesne olmasıdır. Bir nesneyi bir dizeyle birleştiremezsiniz, bu yüzden hatayı alırsınız.

Bu iyi çalışması gerekir:

$(document).ready(function() { 
    var selectedTable = $('table').eq('9'); 

    $(selectedTable).css('border','10px solid green'); 

    $(selectedTable).find('tr td').each(function(i) { 
     $(this).css('border','10px solid blue'); 
    }); 
}); 
23
$(selectedTable).find('td').each(function (index, element) { 
    ... 
}); 
İlgili konular