2009-11-13 13 views
7

अरे दोस्तों - मैं एक मौजूदा विशेषता में अतिरिक्त यूआरएल खंड जोड़ने और बस इसे अपडेट करने की कोशिश कर रहा हूं।JQuery: प्रत्येक तत्व के लिए विशेषता मान जोड़ना

$("img").each(function (i) { 
    var originalSrc = $("img").attr('src'); 
    $("img").attr('src', 'http://www.domain-name.com/' + originalSrc);  
}); 

$("a").each(function (i) { 
    var originalHref = $("a").attr('href'); 
    $("a").attr('href', 'http://www.domain-name.com/' + originalHref);  
}); 

यह सभी तत्वों की गणना कर रहा है और अंतिम विशेषता के लिए एक लंबी स्ट्रिंग जोड़ रहा है। मैं समझता हूं कि क्या हो रहा है, लेकिन मुझे यकीन नहीं है कि इस बारे में जाने का सही तरीका है। यह स्पष्ट रूप से गलत है।

अनिवार्य रूप से, मैं एक दूरस्थ पृष्ठ को स्क्रब कर रहा हूं और मुझे सभी रिश्तेदार कनेक्शन को पूर्ण करने की आवश्यकता है।

धन्यवाद! :-)

+0

मुझे विश्वास है मुझे समझ में नहीं हूँ, क्या इस बात का गलत हिस्सा है? –

+0

मैंने आज सुबह पर्याप्त कॉफी नहीं पीई, यही है! :-) धन्यवाद दोस्तों। इस तरह की मूर्खतापूर्ण चीज पर गलती है। – ritsuke

उत्तर

25

प्रयास करें:

$("img").each(function() { 
    var originalSrc = $(this).attr('src'); 
    $(this).attr('src', 'http://www.domain-name.com/' + originalSrc);  
}); 
0

प्रत्येक समारोह अंदर $(this) बजाय $(a) और $(img) का उपयोग करें।

$("img").each(function (i) { 
    var image = $(this), // 'this' is the image element being iterated 
     originalSrc = image.attr('src'); 

    image.attr('src', 'http://www.domain-name.com/' + originalSrc);  
}); 
1

आप अपने तत्वों से अधिक पाश को each विधि का उपयोग कर रहे हैं, आप this कीवर्ड कॉलबैक फ़ंक्शन के अंदर है, वर्तमान में दोहराया तत्व का उल्लेख करने का उपयोग करना चाहिए

$("img").each(function (i) { 
    var $img = $(this); 
    var originalSrc = $img.attr('src'); // use "this" in the $() function to get the current element... 
    $img.attr('src', 'http://www.domain-name.com/' + originalSrc);  
}); 

$("a").each(function (i) { 
    var $a = $(this); 
    var originalHref = $a.attr('href'); 
    $a.attr('href', 'http://www.domain-name.com/' + originalHref);  
});

नोड सूची में 'वर्तमान' नोड को पुनर्प्राप्त करने के लिए jQuery के कॉलबैक फ़ंक्शंस के अंदर $(this) का उपयोग करना सुनिश्चित करें।

0

अपने कोड संरचना का उपयोग करना::

8

के साथ भी कम काम (http://api.jquery.com/attr/ तुलना):

$("img").attr('src', function(i, val){ 
    return 'http://www.domain.com/' + val; 
}); 

$("a").attr('href', function(i, val){ 
    return 'http://www.domain.com/' + val; 
}); 

स्वागत करती है

संबंधित मुद्दे