2016-04-26 35 views
-1

设置.selectedIndex我有一些HTML选择:如何用jQuery

<select class="form-control, dropdown" id="delperffrom" name="delperffrom"> 
. . . 
<select class="form-control, dropdown" id="delperfto" name="delperfto"> 
. . . 

我要初始化他们 “没有价值”,因此有这个JavaScript的,其工作方式:

document.getElementById("delperffrom").selectedIndex = -1; 

。 。这个jQuery并没有:

$("#delperfto").selectedIndex = -1; 

为什么jQuery不起作用?

+0

因为...'$()'不返回一个DOM节点?阅读文档。 http://api.jquery.com/jQuery - > http://api.jquery.com/Types/#jQuery –

+2

不相关但css类仅由空格分隔。 –

+2

https://api.jquery.com/?s=selectedIndex显示此属性不存在,但显示可用于更改'selectedIndex'的方法。 –

回答

4

.selectedindex的是DOM元件的属性,而不是jQuery的。您可以改变它DOM元件上,或者使用jQuery的.prop()方法:

$("#delperffrom")[0].selectedIndex = -1; // change on dom element pulled from jQuery 
$("#delperffrom").prop('selectedIndex',-1); // change with .prop() jquery method 
3

因为$("#delperfto")是不是DOM元素。这是一个jQuery对象,jQuery对象没有.selectedIndex属性。一个jQuery对象是具有自己的属性和方法的自己类型的对象。它没有与DOM元素相同的属性和方法。它通常有一种完成同样事情的方式,但通常使用不同的语法。

您可以获取从jQuery对象,并访问DOM元素DOM元素直接像这样:

$("#delperfto")[0].selectedIndex = -1; 

$("#delperfto").get(0).selectedIndex = -1; 

或者,你可以使用jQuery的.prop()方法有它为每个DOM元素设置所需的属性,如下所示:

$("#delperfto").prop("selectedIndex", -1); 

有一个没有特别的优势或其他在此特定情况下,但如果你选择在它返回一个以上的元素,例如这样的:

$(".options").prop("selectedIndex", -1); 

然后jQuery的.prop()方法将设置所有的DOM元素属性选择器匹配,而不仅仅是第一个有时可能非常有用的选择器。

+1

只是想知道为什么这两个答案都得到了一个downvote。似乎很奇怪。 – jfriend00