2013-10-14 78 views
1

我要處理的是在addOption拋出一個錯誤selectOptionsjQuery的addOption然後選擇選項

Error: Object has no method selectOptions

有人能解釋我爲什麼不工作的一些舊的javascript代碼?我使用jQuery 1.3

$("some_id").addOption(nodeId, nodeName); // add to list 
$("some_id").selectOptions(/^~~/i, true); // clear selection 

我解決了addOption線通過這個

$("some_id")[0].options.add(new Option(nodeName,nodeId)); 

,但我還是堅持了selectOptions錯誤。

UPDATE 剛剛發現的應用程序也使用道場。這可能是問題嗎?這些Dojo方法是否具體?

謝謝!

+0

也許'first_option = $('some_id')[0] .options [0] .value; ('some_id')。val(first_option);' – Mina

+0

甚至'$('select')。val('')' – Mina

+0

您是否檢查過代碼中是否有selectOption函數聲明?該錯誤說,該函數不存在,據我所知,沒有原生的jQuery selectOptions函數。 – enyce12

回答

1

最後發現什麼不妥。 這些方法來自TexoTela的jquery plugin爲什麼有人會這樣做只是爲了選擇框?打我

Thanks everybody for the responses. They taught me something indeed.

2

使用Jquery Append添加這樣

$("yourid/class here").append($("<option></option>").attr("value", youroption-value).text(youroption-text)); 
+0

是的,我知道這種方法,但我需要知道第二行正在做什麼。它清除了什麼? –

+0

不能說,從來沒有使用這種方法來清除選擇列表選項,我總是使用.empty()或.remove() – Rex

+0

謝謝無論如何,我認爲這與Dojo –

1

選項試試這個,你可以寫你自己的方法:

$.fn.addOption = function(optText, optValue){ 
    var option = new Option(optText, optValue); 
    return this.append(option); 
}; 

$.fn.selectOption = function(toSelect){ 
var $option = this.find("option[value='"+toSelect+"']");  
    if($option.length > 0){ 
     //if option with the value passed on found then select it  
     $option.prop("selected","selected"); 
    }else{ 
     alert("option not found"); 
    } 
}; 

var $select = $("#selectOption"); 
$select.addOption("Dummy1",2); 
$select.addOption("Dummy2",3); 

$select.selectOption(231); 

工作小提琴這裏:http://jsfiddle.net/maverickosama92/rGzPS/1/