2008-09-18 7 views
10

यह कैसे आ काम नहीं करता है (एक खाली चयन सूची <select id="requestTypes"></select>jQuery जेएसओएन से चयन सूची विकल्प बनाते हैं, विज्ञापन के रूप में नहीं हो रहा है?

$(function() { 

     $.getJSON("/RequestX/GetRequestTypes/", showRequestTypes); 

    } 
    ); 


    function showRequestTypes(data, textStatus) { 

     $.each(data, 
      function() { 

       var option = new Option(this.RequestTypeName, this.RequestTypeID); 
       // Use Jquery to get select list element 
       var dropdownList = $("#requestTypes"); 

       if ($.browser.msie) { 
        dropdownList.add(option); 
       } 

       else { 

        dropdownList.add(option, null); 

       } 
      } 
      ); 

     } 

पर काम लेकिन यह करता है:

  • बदलें:

    var dropdownList = $("#requestTypes");

  • सादे पुराने के साथ

    जावास्क्रिप्ट:

    var dropdownList = document.getElementById("requestTypes");

उत्तर

15

$("#requestTypes") रिटर्न एक jQuery उद्देश्य यह है कि सभी चयनित तत्व शामिल हैं। आप किसी व्यक्तिगत तत्व की add() विधि को कॉल करने का प्रयास कर रहे हैं, लेकिन इसके बजाय आप jQuery ऑब्जेक्ट की add() विधि को कॉल कर रहे हैं, जो कुछ बहुत अलग करता है।

स्वयं डीओएम तत्व तक पहुंचने के लिए, आपको jQuery ऑब्जेक्ट को सरणी के रूप में इलाज करने की आवश्यकता है और $("#requestTypes")[0] का उपयोग करके इसे पहले आइटम प्राप्त करें।

9

डिफ़ॉल्ट रूप से, jQuery चयनकर्ताओं jQuery वस्तु लौटने। इस डोम तत्व लौटे प्राप्त करने के लिए जोड़ें:

var dropdownList = $("#requestTypes")[0]; 
+0

धन्यवाद! आप और जिम दोनों बहुत उपयोगी थे! – Codewerks

4

इस तरह की सामग्री के लिए, मैं अपने सरल AJAXAddOption फ़ंक्शन के साथ texotela's select box plugin का उपयोग करता हूं।

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