我不确定是不是因为我使用jQuery来获取下拉列表或者我的假设是肯定的,这就是所选索引给我未定义的原因
var ddlMake = $('#<%=ddlMake.ClientID %>');
var makeid = ddlMake.options[ddlMake.selectedIndex].value;
所以我收到一条错误,说ddlMake.selectedIndex未定义。
但是如果我使用标准JS来引用该下拉列表,那么ddlMake.selectedIndex工作正常并且我得到一个值
var ddlMake = document.getElementById('<%=ddlMake.ClientID %>');
var makeid = ddlMake.options[ddlMake.selectedIndex].value;
如果你使用jQuery来获取DOM中的某个元素,那么你是否还需要使用jQuery方法来使用该元素,比如从中获取数据或者操纵它或者其他什么?
我猜你不能混合使用两者......就像你使用jquery获得一个ref一样,你不能再使用标准的js方法吗?只是对此感到好奇,因为如果是这样,这是一个重要的限制。并不是说我想使用标准的JS,因为我正在使用jquery,但只是好奇,因为我确实遇到了这种痛苦,并想在这里找到答案。
答案 0 :(得分:2)
$(...)
返回一个jQueryu对象,而不是一个DOM元素
您需要在其上使用jQuery methods。
您可以编写$(...)[0]
来获取jQuery对象中包含的原始DOM元素,这会破坏jQuery的目的。
使用jQuery,您可以编写类似
的内容$('#<%=ddlMake.ClientID %> option:selected').val();
答案 1 :(得分:2)
selectedIndex
是DOM元素的属性,但$('#x')
返回jQuery对象。您可以使用[0]
获取DOM对象:
var ddlMake = $('#<%=ddlMake.ClientID %>');
var makeid = ddlMake[0].options[ddlMake[0].selectedIndex].value;