2011-10-31 16 views
6

Biorąc pod uwagę wiele znaczników TABLE na stronie, jak wybrać TD z dzieckiem na wybranej tablicy.Jak korzystać z jQuery .each(), aby znaleźć dzieci dziecka?

Jest to logiczne, ale nie z tego błędu:

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

Mój kod

$(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'); 
    }); 

}); 

Odpowiedz

6

selectedTable jest obiektem jQuery, a nie ciąg.
Nie można jej użyć w selektorze.

Zamiast tego trzeba użyć jQuery przejścia API:

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

Można również łańcuch tak:

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

Ponadto, nie trzeba używać $ (selectedTable), ponieważ twój selektor już zwraca obiekt jquery.

3

Użyj .find(), aby zabrać dzieci ze stołu. Problem polega na tym, że selectedTable nie jest łańcuchem selektora, ale obiektem. Nie można połączyć obiektu z łańcuchem, dlatego pojawia się błąd.

To powinno zadziałać:

$(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) { 
    ... 
}); 
Powiązane problemy