2009-12-11 7 views
41
<table class="checkout itemsOverview"> 
    <tr class="item"> 
     <td>GR-10 Senderos</td> 
     <td><span class="value">15.00</span> €</td> 
     <td><input type="text" value="1" maxlength="2" class="quantity" /></td> 
    </tr> 
    <tr class="item"> 
     <td>GR-10 Senderos<br/>GR-66 Camino de la Hermandad<br/>GR 88 Senderos del Jarama<br/>Camino del Cid</td> 
     <td><span class="value">45.00</span> €</td> 
     <td><input type="text" class="quantity" value="1" maxlength="2"/></td> 
    </tr> 
</table> 

मैं प्रत्येक आइटम के मूल्य और मात्रा प्राप्त करने के लिए अगले कोड के साथ प्रयास कर रहा था।JQuery के साथ एक तालिका पंक्तियों को फिर से कैसे करें और कुछ सेल मानों को कैसे एक्सेस करें?

$("tr.item").each(function(i, tr) { 
    var value = $(tr + " span.value").html(); 
    var quantity = $(tr + " input.quantity").val(); 
}); 

यह काम नहीं कर रहा है। क्या कोई मेरी मदद कर सकता है?

+2

विशेष रूप से आप के लिए काम नहीं कर रहा है? –

उत्तर

80
$("tr.item").each(function() { 
    $this = $(this); 
    var value = $this.find("span.value").html(); 
    var quantity = $this.find("input.quantity").val(); 
}); 
+14

पृष्ठ में सभी तालिकाओं को फिर से शुरू करने के लिए, $ ("tr.item") को प्रतिस्थापित करने के लिए बेहतर। प्रत्येक (...) $ ('# myTableId> tbody> tr.item') के साथ। प्रत्येक (...) – thedrs

+7

'$ = $ (यह)' क्या करता है? – qed

+3

@qed "इस" के वर्तमान संदर्भ मान को एक वैरिएबल में संग्रहीत करता है जिसे $ $ कहा जाता है। यदि आप मात्रा असाइनमेंट के बाद एक और पुनरावृत्ति कॉल घोंसला चाहते थे, तो "$ (यह)" को कॉल करना अब एक ही परिणाम नहीं होगा। मेरा मानना ​​है कि ब्रायन इस भ्रम से बचने के लिए मानक सर्वोत्तम अभ्यास का उपयोग कर रहा है, लेकिन वह इसे आसानी से "currow" नामित कर सकता था। – JWiley

16

ऐसा करते हैं:

$("tr.item").each(function(i, tr) { 
    var value = $("span.value", tr).text(); 
    var quantity = $("input.quantity", tr).val(); 
}); 
0

कोशिश इस

var value = iterate('tr.item span.value'); 
var quantity = iterate('tr.item span.quantity'); 

function iterate(selector) 
{ 
    var result = ''; 
    if ($(selector)) 
    { 
    $(selector).each(function() 
    { 
     if (result == '') 
     { 
     result = $(this).html(); 
     } 
     else 
     { 
     result = result + "," + $(this).html(); 
     } 
    }); 
    } 
} 
संबंधित मुद्दे