在jQuery中,等同于document.getElementById("selectlist").value
?
我正在尝试获取选择列表项的值。
感谢。
答案 0 :(得分:211)
“等效”是这里的单词
...虽然
$('#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
答案 1 :(得分:147)
$('#selectlist').val();
答案 2 :(得分:9)
混乱现象很明显,但是对于这些问题你应该在网上查看Jquery Documentation - 这真的非常全面。 您所追求的功能称为“jquery选择器”
通常你做$('#ID').val()
- .afterwards可以对从选择器返回的元素做很多事情。您还可以选择某个类的所有元素,并对每个元素执行某些操作。查看文档以获取一些很好的示例。
答案 3 :(得分:9)
它可以通过三种不同的方式完成,尽管它们几乎相同
Javascript方式
document.getElementById('test').value
Jquery方式
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
答案 4 :(得分:2)
对于那些想知道jQuery id选择器是否比document.getElementById慢的人来说,答案是肯定的,但不是因为它在搜索整个DOM中寻找元素的前提。 jQuery确实使用本机方法。这实际上是因为jQuery首先使用正则表达式来分隔选择器中的字符串以进行检查,当然还要运行构造函数:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
然后使用DOM元素作为参数立即返回'this'。
所以这个:
$(document.getElementById('blah')).doSomething();
永远比这更快:
$('#blah').doSomething();
答案 5 :(得分:0)
在某些情况下,我不记得为什么,但$('#selectlist').val()
并不总是返回正确的项目值,因此我使用$('#selectlist option:selected').val()
代替。