2011-11-07 76 views
1

我不知道這是否是因爲我用jQuery來獲得裁判的下拉或什麼,但我的假設是肯定這就是爲什麼選擇指數是給我不確定入門未定義選擇指數

var ddlMake = $('#<%=ddlMake.ClientID %>'); 
var makeid = ddlMake.options[ddlMake.selectedIndex].value; 

所以我得到一個錯誤,說ddlMake.selectedIndex是未定義的。

但是,如果使用標準的JS來REF是下拉列表中,那麼ddlMake.selectedIndex工作正常,我得到一個值

var ddlMake = document.getElementById('<%=ddlMake.ClientID %>'); 
var makeid = ddlMake.options[ddlMake.selectedIndex].value; 

所以是的,如果你使用jQuery得到裁判的一些元素DOM,你是否還需要進一步使用jQuery方法來使用該元素,例如從中獲取數據或操作它或其他?

我想你不能混合使用這兩個..就像你通過使用jQuery獲得裁判,你不能然後使用標準的JS方法來對付它?只是對此感到好奇,因爲如果是這樣的話它是一個重要的限制。並不是說我想使用標準JS,因爲我使用的是jquery,但只是好奇,因爲我確實遇到過這種痛苦,並且想要在這裏找出答案。

+0

對不起,我很樂意接受兩種答案,但我選擇誰與rreason第一次來到了,那就是畝。 – PositiveGuy

回答

2

selectedIndex是DOM元素的屬性,但$('#x')返回一個jQuery對象。您可以使用[0]雖然得到DOM對象:

var ddlMake = $('#<%=ddlMake.ClientID %>'); 
var makeid = ddlMake[0].options[ddlMake[0].selectedIndex].value; 
+0

嗯相反有趣的是我注意到,如果你這樣做:var ddlPaintType = document.getElementById('<%= ddlPaintType.ClientID%>');你可以在原始DOM元素上使用jQuery方法? – PositiveGuy

+0

@CoffeeAddict:不,你不能在原始DOM對象上使用jQuery方法。你在做什麼'ddlPaintType'? –

2

$(...)返回一個jQueryu對象,而不是DOM元素。
你需要使用jQuery methods就可以了。

您可以編寫$(...)[0]來獲取jQuery對象中包含的原始DOM元素,這是違背了jQuery目的的。

使用jQuery,你可以寫類似

$('#<%=ddlMake.ClientID %> option:selected').val(); 
+0

謝謝,並得到下拉的文本值我假設文本(); – PositiveGuy