2010-03-23 82 views
0

我有這段代碼,如果我測試selectedIndex,我總是收到undefined。無法設置selectedIndex off用javascript選擇

alert(x.selectedIndex); 

因此,設置它也是一個問題。

有沒有人可能會看到問題是什麼?

//makes list off tags 
function ttyps_select(data,naamsel,selectid, containerid){ 

if(!ttyps.length){ 
    jQuery.each(data, function(index, itemData) { 
     ttyps.push(new Tagtype(itemData.tag_id, itemData.tag)); 
    }); 
} 
opties = "<option value=\"-1\"></option>\n"; 
for(var i=0; i<ttyps.length; i++) { 

    var dfnkey = ttyps[i].tag_id; 
    var dfnsel = ttyps[i].tag; 

    if (dfnkey==selectid) { 
     opties +="<option value="+ttyps[i].tag_id+" SELECTED>"+dfnsel+"</option>\n"; 

    } else { 
     opties +="<option value="+dfnkey+">"+dfnsel+"</option>\n"; 
    } 
} 

$("<select name=\"" + naamsel + "\" size=\"1\" ></select>") 
     .html(opties) 
     .change(function(e){ 
      select_tag(containerid); 
     }) 
     .appendTo("#"+naamsel); 
} 

function select_tag(id) { 
    var x = $('#frmttypid'+id+' select'); 
    var ttidx = x.val(); 
    var tag = getTagtype(ttidx).tag; 
    x.selectedIndex=0; 
    x.blur(); 
    if(tag){ 
     document.forms['frmtags']['frmtag'+id].value=tag; 
    } 
} 

感謝,理查德

回答

1

$('selector')(jQuery的)返回匹配的DOM節點的陣列狀的收集的對象。你的x變量是一個jQuery對象,而不是對任何特定的<select/>元素的引用。使用

x[0].selectedIndex 

x[0]是對jQuery對象中第一個DOM節點的引用。

+0

謝謝,我已經通過使用document.getElementById()找到了解決方案;因爲我還沒有弄清楚jQuery選擇器總是返回一個像collection這樣的數組。所以你的更好,我會改變代碼。 – Richard 2010-03-23 18:55:34

相關問題