2010-02-16 19 views
8
OperationSelector = function(selectElement) { 
    this.selectElement = selectElement; 
} 

OperationSelector.prototype.populateSelectWithData = function(xmlData) { 
    $(xmlData).find('operation').each(function() { 
     var operation = $(this); 
     selectElement.append('<option>' + operation.attr("title") + '</option>');    
    }); 
} 

मैं पुनरावृत्ति ब्लॉक में OperationSelector.selectElement का उपयोग कैसे कर सकता हूं?जावास्क्रिप्ट बाहरी स्कोप परिवर्तनीय पहुंच

+3

संयोग से आपको आम तौर पर नए विकल्प बनाने के लिए HTML स्ट्रिंग-स्लिंगिंग का उपयोग नहीं करना चाहिए। यदि 'शीर्षक' में '<' या '&' हो सकता है तो आपको परेशानी हो सकती है (संभावित रूप से सुरक्षा समस्या)। नोड बनाने के लिए 'नया विकल्प (ऑपरेशन.एटरआर ('शीर्षक')) का उपयोग करना आसान और सुरक्षित है। – bobince

+0

बॉबन्स, सलाह के लिए धन्यवाद! – dmitrynikolaev

उत्तर

13

इसे अपने पुनरावृत्ति समारोह से पहले फ़ंक्शन स्कोप में स्थानीय चर में असाइन करें। फिर आप इसे संदर्भित कर सकते हैं:

OperationSelector = function(selectElement) { 
    this.selectElement = selectElement; 
} 

OperationSelector.prototype.populateSelectWithData = function(xmlData) { 
    var os = this; 
    $(xmlData).find('operation').each(function() { 
     var operation = $(this); 
     os.selectElement.append(new Option(operation.attr("title"))); 
    }); 
} 
संबंधित मुद्दे