मेरे पास एक टेबल है कि मैं टेबल के आखिरी सेल में एक पेपैल बटन डालने की कोशिश कर रहा हूं जो खाली है। मुझे यकीन नहीं है कि तालिका में कितनी पंक्तियां होंगी और मेरे पास आईडी की हार्ड कोड अब काम करती है। आईडी की शुरुआत एल से होती है और प्रत्येक पंक्ति के लिए एक संख्या _qryMyReservedSlots_Payment

['#el1_qryMyReservedSlots_Payment', '#el2_qryMyReservedSlots_Payment', '#el3_qryMyReservedSlots_Payment'].forEach(function(selector) {
        paypal.Button.render({ 
        ...paypal code...
        });
});  

अधिक कुशल होने के लिए, मैं आईडी के माध्यम से कैसे लूप कर सकता हूं ताकि मुझे उन्हें हार्ड कोड न करना पड़े?
स्कॉट

0
ready4data 28 मार्च 2018, 16:49

2 जवाब

सबसे बढ़िया उत्तर

मुझे यकीन नहीं है कि तालिका में कितनी पंक्तियाँ होंगी और मेरे पास अब आईडी की हार्ड कोड है जो काम करती है

querySelectorAll का उपयोग करें और विशेषता में चयनकर्ता शामिल है - *

var allRows = document.querySelectorAll( "tr[id*='qryMyReservedSlots_Payment']");
Array.from( allRows ).forEach( function(rowElement){
  //logic with rowElement
})
0
gurvinder372 28 मार्च 2018, 13:53

क्या आपको उनकी विशिष्ट आईडी रखने की आवश्यकता है? आपको उन्हें एक कक्षा देनी चाहिए और फिर document.getElementsByClassName(className).forEach(...) जैसा कुछ करना चाहिए।

यदि आप अद्वितीय आईडी रखने पर जोर देते हैं (जिसकी फिर से आवश्यकता नहीं है और यही कारण है कि हमारे पास कक्षाएं हैं), तो आपका कुछ ऐसा हो सकता है:

while (document.getElementById(`el${ counter++ }_qryMyReservedSlots_Payment`)) {
  paypal.Button.render({ 
    ...paypal code...
  });
}

दोबारा, यह अच्छा नहीं है क्योंकि हर बार जब आप आईडी पूछते हैं, तो आप डोम को मार रहे हैं। आपको वास्तव में यह सब एक बार में प्राप्त करना चाहिए, इन-मेमोरी में हेरफेर करना चाहिए, और फिर अपने सभी परिवर्तनों को यथासंभव कुछ DOM कॉल में करना चाहिए।

0
Milan Adamovsky 28 मार्च 2018, 13:57