jQuery

2012-04-23 6 views
12

के साथ पंक्ति और कॉलम आईडी को जानने वाले तालिका कक्ष खोजें मेरे पास एक साधारण तालिका है, जहां मैंने पंक्तियों के लिए शीर्षलेख और आईडी के लिए आईडी सेट की हैं। दोनों के लिए एक आईडी को देखते हुए, मुझे उन दोनों के चौराहे पर एक संबंधित सेल ढूंढना होगा।jQuery

उदाहरण:

<table id="tablica"> 
    <thead> 
     <th id="bla">Bla</th> 
     <th id="bli">Bli</th> 
     <th id="blu">Blu</th> 
    </thead> 
    <tbody> 
     <tr id="jedan"> 
      <td>1</td>    
      <td>2</td> 
      <td>3</td> 
     </tr> 
     <tr id="dva"> 
      <td>4</td>    
      <td>5</td> 
      <td>6</td> 
     </tr> 
     <tr id="tri"> 
      <td>7</td>    
      <td>8</td> 
      <td>9</td> 
     </tr> 
    </tbody> 
</table>​​​ 

तो मैं आईडी = "BLI" और आईडी = "dva", इसका मतलब है कि मैं सेल इस उदाहरण में मूल्य 5 होने के साथ कुछ करना चाहता हूँ है।

संपादित करें: बहुत सारे सही उत्तर हैं, मैंने उन सभी को अपरिवर्तित किया, लेकिन दुर्भाग्य से मैं केवल एक को सही के रूप में चुन सकता हूं।

उत्तर

7

यहाँ मेरी समाधान है jsfiddle पर: http://jsfiddle.net/t8nWf/2/

सब एक समारोह में कहा:

function getCell(column, row) { 
    var column = $('#' + column).index(); 
    var row = $('#' + row) 
    return row.find('td').eq(column); 
} 

कार्य उदाहरण: http://jsfiddle.net/t8nWf/5/

+2

'$ (' # tablica ') बदलें। (' Thead ') खोजें। (' # Bli ')। अनुक्रमणिका(); 'to' $ (' # bli ')। अनुक्रमणिका() '। काफी तेज! – binarious

+0

धन्यवाद और अपडेट किया गया – WolvDev

3

यदि आपके पास पंक्ति की आईडी है तो आप इसमें डेटा 5 वाले कॉलम का चयन कर सकते हैं।

$("#dva").find("td:contains(5)").css({"background-color":"red"}); 

कार्य उदाहरण के रूप में this fiddle भी देखें।

संपादित पंक्ति आप केवल मेज पर आईडी की आईडी बिना जाने, तो आप भी सेल पा सकते हैं:

$("#tablica tr").find("td:contains(5)").css({"background-color":"red", "padding":"5px"}); 

Working example

+2

मुझे लगता है कि वह टीडी (मेरी धारणा) का मूल्य नहीं जानता है। –

+0

यह सही है, मुझे टीडी मूल्य नहीं पता है। – eagerMoose

2
$('#dva > td').eq($('#bli').index()); // returns the td element 

काम करना चाहिए। कार्य उदाहरण: http://jsbin.com/acevon/edit#javascript,html,live

+0

यह लक्ष्य टीआर में सभी टीडी देता है। –

+0

नहीं, ऐसा नहीं है। जेएसबीएन जांचें। – binarious

+0

मुझे लगता है कि आपने इसे ठीक किया है। मूल संस्करण काम नहीं किया: http://jsfiddle.net/sMH5K/ –

1

यह आपको टीडी तत्व आप एक jQuery वस्तु के रूप में चाहते हैं मिल जाएगा:

var column = $('#bli').index(); 
var cell = $('#dva').find('td').eq(column); 

और काम कर रहे उदाहरण:

var thIndex = $('#tablica #bli').index(); // get index of TH in thead 
var $td = $($('#dva td').get (thIndex)); // get the TD in the target TR on the same index as is in the thead 

JSFiddle example

+0

'#bablica th # bli' एक बहुत खराब चयनकर्ता है। चूंकि एक आईडी अद्वितीय है, तो आप केवल '# bli' पूछ सकते हैं। – binarious

+0

आप सही हैं, इसे ठीक करें। –