2012-12-19 11 views
7

मैं पृष्ठ पर id और name विशेषताएँ बदलने की कोशिश कर रहा हूं। कोड मैं उपयोग कर रहा हूँ यह है:.find() के साथ Regex, कोई परिणाम

var img = new RegExp('id*="launch_pad_image_slide_\d"', g) ; 
$('.slider-data').each(function(){ 
    $(this).find(img).attr('id', 'random stuff'); 
});    

धारणा .find समारोह पूरे id अंदर लेने चाहिए:

id="launch_pad_image_slide_2" 

... लेकिन यह काम नहीं करता।

इस पर 5 घंटे, और जला दिया। सुझाव? मूल रूप से प्रत्येक बार फ़ील्ड हटा दिए जाने पर, jQuery को उनके माध्यम से लूप करना पड़ता है और युगल से बचने के लिए उनके id/name गुणों को ठीक से प्रदर्शित करना होता है।

+1

क्या @VisioN आपकी समस्या का समाधान करना चाहिए, लेकिन के लिए पोस्ट किया गया है वृद्धिशील विशेषताओं का उपयोग करके भविष्य का संदर्भ कभी भी एक सुरुचिपूर्ण समाधान नहीं होता है क्योंकि इससे आपको ऐसी समस्याओं का सामना करना पड़ता है जैसे आपने अनुभव किया है। इसके बजाए, उसी वर्ग या नाम वाले तत्वों का उपयोग करें और उन्हें डीओएम या सरणी के माध्यम से ट्रैवर्स करें। –

+0

@RoryMcCrossan आपका धनुष कहां है? :) – VisioN

+0

@VisioN शीतकालीन बैश में टोपी देखें: डी –

उत्तर

10

jQuery चयनकर्ता रेगेक्स वाक्यविन्यास का समर्थन नहीं करता है। filter को

$(this).find("[id^='launch_pad_image_slide_']").prop("id", "random stuff"); 

एक और तरीका है तत्वों: हालांकि, अगर आप Attribute Starts With Selector का उपयोग कर सकते

$(this).find("[id]").filter(function() { 
    return /^launch_pad_image_slide_\d$/.test(this.id); 
}).prop("id", "random stuff"); 
1

आज़माएं:

$('img').each(function(){ 
      if ($(this).attr('id').indexOf("launch_pad_image_slide_") >= 0) 
       $(this).attr('id',Math.random()); 
    }); 
संबंधित मुद्दे