2012-11-11 12 views
13

के साथ एक टी.आर. में पाठ के साथ पहले टीडी खोजें, मैं JQuery का उपयोग कर रहा एक तालिका में सभी टीआरएस के माध्यम से पुनरावृति करने के लिए JQuery

लेकिन सभी पंक्तियों प्रथम कक्ष में मान हैं।

<TR> 
    <TD>3</TD> 
    <TD>2</TD> 
    <TD>1</TD> 
</TR> 
    <TD></TD> 
    <TD>3</TD> 
    <TD>2</TD> 
<TR> 
</TR> 
<TR> 
    <TD></TD> 
    <TD></TD> 
    <TD>3</TD> 
</TR> 

मैं प्रत्येक पंक्ति में पहले टीडी को कैसे लक्षित कर सकता हूं जो खाली नहीं है और न केवल पहले बच्चे?

धन्यवाद!

+1

आपका पुनरावृत्ति कोड कैसा दिखता है? –

उत्तर

19

यहाँ एक सरल, अधिक सुरुचिपूर्ण समाधान है:

$('tr').find('td:not(:empty):first').css('background', 'red');​ 

फिडल: http://jsfiddle.net/dandv/JRcEf/

यह सिर्फ jQuery में कहते हैं तुम क्या मतलब है: "को लक्षित प्रत्येक tr में पहलेtd कि है नहीं खाली "।

+0

यह बहुत अच्छा है, मैं एक चयनकर्ता आधारित विधि की उम्मीद कर रहा था लेकिन नहीं कर सका सही से समझना। धन्यवाद! – BarakChamo

+1

@ बराकचमो: सावधान रहें कि चयनकर्ता को संभालने के लिए ** jQuery ** की आवश्यकता होगी, यह ब्राउज़र के अपने (बहुत, तेज़) चयनकर्ता इंजन को सौंपने में सक्षम नहीं होगा। 99.9% उस समय से कोई फर्क नहीं पड़ता! –

0
var tds = []; 

$('#tableId tr').each(function() 
{ 
    $(this).find('td').each(function() 
    { 
    if ($(this).html() != '') 
    { 
     tds.push($(this)); 
     return false; 
    } 
    }); 
}); 

और tds चर में देखा आप अपने टीडी टैग

1

यह प्रत्येक tr भीतर पहली गैर खाली बच्चे td पाता है:

$("tr").each(function() { 
    var $firstNonEmptyCell; 

    $(this).children("td").each(function() { 
     var $td = $(this); 
     if ($td.text() === "") { 
      $firstNonEmptyCell = $td; 
      return false; // Breaks `each` loop 
     } 
    }); 

    // ...use `$firstNonEmptyCell` here 
}); 

या आप के लिए एक jQuery आवरण चाहते हैं सभी गैर-खाली वाले, यह filter:

$("tr").each(function() { 
    var nonBlankCells = $(this).children("td").filter(function() { 
     return $(this).text() !== ""; 
    }); 

    // Use `nonBlankCells` here 
}); 
के लिए एक मामूली उपयोग केस है 10
+1

मामूली हो सकता है, लेकिन [एक-लाइनर] (http://stackoverflow.com/a/13330866/1269037) को हरा नहीं देता है;) –

संबंधित मुद्दे

 संबंधित मुद्दे