我不确定是否是因为我使用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获得引用,就不能对它使用标准的js方法?对此感到好奇,因为如果这样的话,这是一个重要的限制。我并不是想像使用jquery一样使用标准JS,但只是感到好奇,因为我确实遇到了这种痛苦,并想在这里找出答案。
最佳答案
selectedIndex
是DOM元素的属性,但是$('#x')
返回jQuery对象。您可以使用[0]
获取DOM对象:
var ddlMake = $('#<%=ddlMake.ClientID %>');
var makeid = ddlMake[0].options[ddlMake[0].selectedIndex].value;