如何使用jQuery – document.getElementById(“selectlist”)。value

在jQuery中,什么是document.getElementById("selectlist").value

我正在尝试获取select列表项的值。

谢谢。

 $('#selectlist').val(); 

“等同”这个词在这里

而…

 $('#selectlist').val(); 

…相当于…

 document.getElementById("selectlist").value 

…值得注意的是…

 $('#selectlist') 

…虽然“等同”不一样…

 document.getElementById("selectlist") 

…因为前者返回一个jQuery对象,而不是一个DOM对象。

要从jQuery获取DOM对象,请使用以下命令:

 $('#selectlist').get(); //get all DOM objects in the jQuery collection $('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0 $('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0 

混乱现象,虽然对于这些问题,你应该检查在线的JQuery文档 – 它确实是相当全面的。 你以后的function叫做“jqueryselect器”

通常你做$('#ID').val() – 这个.afterwards可以在select器返回的元素上做很多事情。 您也可以select某个class级的所有元素,然后对每个元素进行一些操作。 查看一些很好的例子的文档。

这可以通过三种不同的方式来完成,尽pipe它们几乎是相同的

Javascript方式

 document.getElementById('test').value 

jquery的方式

 $("#test").val() $("#test")[0].value $("#test").get(0).value 

对于那些想知道jQuery idselect器是否比document.getElementById慢的问题,答案是肯定的,但不是因为它在整个DOM中寻找元素的先入为主的观念。 jQuery实际上使用本地方法。 这实际上是因为jQuery首先使用正则expression式来分隔select器中的string以检查,当然还要运行构造函数:

 rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/ 

而使用DOM元素作为参数立即返回“this”。

所以这:

 $(document.getElementById('blah')).doSomething(); 

永远比这更快:

 $('#blah').doSomething(); 

在某些情况下,我不记得为什么,但$('#selectlist').val()不会总是返回正确的项目值,所以我使用$('#selectlist option:selected').val()代替。