2011-10-31 13 views
6

किसी पृष्ठ पर कई टैबलेट टैग दिए गए, मैं चयनित तालिका पर टीडी का चयन कैसे करूं। है एक jQuery वस्तु, न कोई स्ट्रिंगमैं बच्चे के बच्चों को खोजने के लिए jQuery .each() का उपयोग कैसे करूं?

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

मेरे कोड

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

}); 

उत्तर

6

selectedTable:

यह तार्किक है, लेकिन इस त्रुटि के साथ विफल।
आप इसे एक चयनकर्ता में उपयोग नहीं कर सकते हैं।

इसके बजाय, आप jQuery के ट्रेवर्सल एपीआई का उपयोग करने की जरूरत है:

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

तुम भी निम्नलिखित की तरह श्रृंखला कर सकते हैं:

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

इसके अलावा, आप $ (उपयोग करने के लिए की जरूरत नहीं है चयनितटेबल) फिर से आपका चयनकर्ता पहले से ही एक jquery ऑब्जेक्ट देता है।

3

तालिका के बच्चों को प्राप्त करने के लिए .find() का उपयोग करें। आपके पास समस्या यह है कि selectedTable कोई चयनकर्ता स्ट्रिंग नहीं है, लेकिन एक ऑब्जेक्ट है। आप किसी ऑब्जेक्ट को स्ट्रिंग के साथ संयोजित नहीं कर सकते हैं, यही कारण है कि आपको अपनी त्रुटि मिलती है।

यह ठीक काम करना चाहिए:

$(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) { 
    ... 
}); 
संबंधित मुद्दे