Jquery

2012-01-29 3 views
10

के साथ एकाधिक तत्वों का मान प्राप्त करना मैं तालिका कक्ष का मान प्राप्त करने का प्रयास कर रहा हूं।Jquery

उदाहरण के लिए

<table id='projects'> 

     <tr> 
     <td id='a'>aaaaa</td> 
     <td id='b'>bbbbb</td> 
     <td id='c'>ccccc</td> 
     <td id='d'>eeeee</td> 
     <td id='e'>ddddd</td> 
     </tr> 
</table> 
<a id='test' href='#'>test </a> 

मैं aaaaa, bbbbb, ccccc, eeeee, ddddd हो और उन्हें अपने सरणी asign करना चाहते

मेरा मानना ​​है कि मैं

नीचे मेरी Jquery कोड के साथ मूल्य प्राप्त कर सकते हैं
$(document).ready(function(){ 
    $('#test').click(function(){ 
    var tableVal=new Array(); 
    tableVal['a']=$('#a').text(); 
    tableVal['b']=$('#b').text(); 
    tableVal['c']=$('#c').text(); 
    tableVal['d']=$('#d').text(); 
    tableVal['e']=$('#e').text(); 

    }) 
}); 

हालांकि, मुझे लगता है कि यह बहुत ही रखरखाव योग्य नहीं है और मेरे पास 20 टैग हैं तो बहुत सारे कोड लें। मैं सोच रहा था कि क्या मैं इसे .each या इसे संग्रहीत करने का कोई बेहतर तरीका कर सकता हूं। सहायता के लिए धन्यवाद। .. 1 ली पंक्ति का अर्थ है तदनुसार संशोधित यदि आप सभी पंक्तियों के लिए कर सकते हैं या यदि आप उस के साथ मदद की जरूरत है मुझे पता है चाहता हूँ - :eq(0):

उत्तर

11

आप नीचे दिए गए की तरह कुछ कर सकते हैं,

var tableVal= []; 

$('#projects tr:eq(0) td').each (function() { 
    tableVal[this.id] = $(this).text(); 
}); 

नोट।

+0

हां मुझे एक सहयोगी सरणी की आवश्यकता है और आपका उत्तर मेरे लिए सही है। हालांकि मैं आपके कोड में '(इंडेक्स)' के इरादे को समझ नहीं पा रहा हूं। क्या आप समझाएंगे? धन्यवाद। – FlyingCat

+0

आपको फ़ंक्शन (अनुक्रमणिका) की आवश्यकता नहीं है। –

+0

नक्शा अधिक संक्षिप्त है – pstanton

7

हाँ, आप कर सकते हैं :)।

var tableVals= {} 
$('#projects td').each(function() { 
    tableVals[$(this).attr('id')] = $(this).text(); 
}); 

कृपया, यदि आपकी कुंजी संख्यात्मक नहीं हैं, तो सरणी के बजाय ऑब्जेक्ट का उपयोग करना याद रखें।

+0

धन्यवाद, एसकेएस तेज है इसलिए मैंने अपना जवाब दिया। +1। – FlyingCat

29

यदि आप वास्तव में एक ऐरे चाहते हैं, .map().toArray() के साथ उपयोग करें।

var tableVal = $('#projects td').map(function(i,v) { 
    return $(this).text(); 
}).toArray(); 

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

+0

+1 - अच्छा जवाब :) .. हालांकि ओपी चाहता है टेबल की तरह कुछ ['ए'] .. क्या नक्शा आपको एक रिटर्न नहीं देता है? अगर मैं ग़लत हूं तो मेरी गलती सुझाएं। –

+0

ओपी एक सहयोगी सरणी चाहता है .. आपके मामले में, मुझे लगता है कि tableVal ['a'] अपरिभाषित होगा। –

+0

@ एसकेएस: हाँ, आपका जवाब ऐसा करने का तरीका होगा। वहां +1 करें। :) –

2

प्रयास करें:

var tableVal = []; 
$('#test').click(
    function(){ 
     $('#projects td').each(
      function(){ 
        tableVal.push($(this).text()); 
      }); 
    }); 
5

पहले, दे अपने tr एक id:

<tr id="rowToGetDataFrom"> 

तो फिर तुम सरणी आप इस तरह चाहते हैं प्राप्त कर सकते हैं:

var tableVal = $('#rowToGetDataFrom td').map(function() { return $(this).text(); }); 

डेमो: http://jsfiddle.net/alecgorge/3ApnB/

+0

tableVal ['a'] = अपरिभाषित। ओपी चाहता है टेबल वैल ['ए'] = 'aaaaa'। नक्शा सभी वस्तुओं को किसी सरणी या ऑब्जेक्ट में वस्तुओं की नई सरणी में अनुवाद करता है। ओपी एक सहयोगी सरणी चाहता है। –