2013-01-24 17 views
7

में के माध्यम से दोहराएं मैं डोम है कि इसकिसी तालिका में दूसरे कॉलम jQuery

<div id="table"> 
<table> 
<tr> 
    <td>a</td> 
    <td>b</td> 
    <td>c</td> 
    <td>d</td> 
</tr> 
<tr> 
    <td>a</td> 
    <td>b</td> 
    <td>c</td> 
    <td>d</td> 
</tr> 
</div> 

मैं इस तालिका के माध्यम से पुनरावृति करना चाहते हैं की तरह लग रहा में मेज है, इस तरह के रूप $('#table').each(function(){}) लेकिन मैं केवल दूसरे स्तंभ के माध्यम से पुनरावृति करना चाहते हैं । तो जिनके पास इस उदाहरण में बी का मूल्य है।

कोई भी विचार है कि यह कैसे करना है?

धन्यवाद!

+0

यह इस तरह दिखता है कहा गया है और जवाब से पहले: http://stackoverflow.com/questions/6917143/loop-through-the- – Marquez

उत्तर

21

इस प्रयास करें:

$("table tr td:nth-child(2)").each(function() { 

}); 
+0

यह मुख्य तालिका के अंदर किसी भी नेस्टेड टेबल से मेल खाता है ... इसलिए कुछ 'td' तत्व सह उल कई बार मिलान किया जा सकता है। इसके अलावा, आपको 'tr' भाग की आवश्यकता नहीं है, क्योंकि' td' हमेशा 'tr' का बच्चा होता है। और यह jQuery के लिए अधिक पठनीय और आसान है जब आप jQuery के लिए jQuery के लिए एक बड़ी चयनकर्ता स्ट्रिंग के बजाय '.find' या' .children' जैसी सामग्री का उपयोग करते हैं। – Ian

10

jQuery में nth-child चयनकर्ता का उपयोग करना, यह काम करना चाहिए:

$("#table").find("td:nth-child(2)").each(function() { 

}); 

यह nth-child चयनकर्ता, http://api.jquery.com/nth-child-selector/, जो लिंक राज्यों के रूप में, सभी <td> तत्वों है कि उनके माता-पिता के 2 बच्चे हैं का चयन करेंगे (का उपयोग करता है जो <tr> होगा)।

: http://jsfiddle.net/GshRz/

आप एक चयनकर्ता कि <td> कि तालिका में केवल तुरंत कर रहे हैं हो जाता है (जैसे एक नेस्टेड तालिका में नहीं), तो जैसे कुछ का उपयोग करने के लिए देख रहे हैं:

यहाँ एक बेला यह दर्शाता है कि यह है

$("#table").children("tbody").children("tr").children("td:nth-child(2)").each(function() { 

}); 

http://jsfiddle.net/GshRz/1/

अपने संरचना (जहाँ आप एक <thead> शामिल हो सकता है) के आधार पर आप .children("thead, tbody") के बजाय सिर्फ ०१२३५३०७९१९ इस्तेमाल कर सकते हैं।

इसके अलावा, मामले में आप कई स्तंभ हथियाने होना चाहते हैं, यह <tr> तत्वों का चयन करने के लिए और फिर अपने बच्चों को <td> तत्वों मिल आसान हो सकता है। उदाहरण के लिए:

$("#table1").children("tbody").children("tr").each(function (i) { 
    var $this = $(this); 
    var my_td = $this.children("td"); 
    var second_col = my_td.eq(1); 
    var third_col = my_td.eq(2); 
    console.log("Second Column Value (row " + i + "): " + second_col.html()); 
    console.log("Third Column Value (row " + i + "): " + third_col.html()); 
}); 

http://jsfiddle.net/GshRz/2/

क्या चयनकर्ताओं आप का उपयोग करें और जहां, संरचना और अपनी मेज की सामग्री पर निर्भर है। तो children और find, और nth-child और eq के बीच अंतर करना याद रखें।

+1

पर विस्तृत प्रतिक्रिया के लिए धन्यवाद, मैं आगे बढ़ गया और @ namkha87 का चयन किया, क्योंकि यह काम करता है और ऐसा प्रतीत होता है कि यह कोशिकाएं-ऑफ-ए-कॉलम-नहीं-कोशिका-के-एक-पंक्तियों के साथ-jquery-or-js- एक खोज करने से तेज़() – dzm

0
$("#table td:nth-child(2)").each(function (index) { 
    alert('Row no. ' + (index+1) + ', Column 2 : ' + $(this).html()); 
}); 

Sample

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