当使用jQuery选择器时,HTML5/JavaScript/jQuery-Input Range.value()变得未定义?

当使用jQuery选择器时,HTML5/JavaScript/jQuery-Input Range.value()变得未定义?,javascript,jquery,html,variables,scroll,Javascript,Jquery,Html,Variables,Scroll,因此,我尝试创建一个InputRange对象,允许用户从一系列值中进行选择,并读取该值并更新jQuery变量 如果我尝试访问以下值: <input id="scroll" type="range" min="1" max="60" value="5"> 它的功能正确,变量更新 但是,如果使用jQuery标记选择器,如下所示: $("#scroll").on("change", function() { variable= $("#scroll").value; } 变量变

因此,我尝试创建一个InputRange对象,允许用户从一系列值中进行选择,并读取该值并更新jQuery变量

如果我尝试访问以下值:

<input id="scroll" type="range" min="1" max="60" value="5">
它的功能正确,变量更新

但是,如果使用jQuery标记选择器,如下所示:

$("#scroll").on("change", function() {
    variable= $("#scroll").value;
}
变量变为未定义

你能解释一下原因吗?我的想法是,这是指更新后的HTML对象,并使用HTML属性,但坦率地说,我对它了解不够。

正确的语法是$scroll.val。您省略了,使用了DOM属性而不是jQuery方法

$("#scroll").on("change", function() {
    variable= $("#scroll").val();
}
正确的语法是$scroll.val。您省略了,使用了DOM属性而不是jQuery方法

$("#scroll").on("change", function() {
    variable= $("#scroll").val();
}

您是否尝试过var variable=定义变量?哦,很抱歉,该变量的定义超出了此函数的范围。我想让函数更新变量。您是否尝试过var variable=来定义变量?哦,对不起,变量的定义超出了此函数的范围。我想让函数更新变量。this.value应该返回相同的结果吗?是的,应该是。@guest271314是的,结果将是相同的,但正如David指出的那样,使用this.value是有效的。由于选择器中缺少一个,jQuery方法无法工作。@NewToJS这是正确的答案。性能上可能没有太大差别,不过为什么要调用jQuery和.val而不是这个.value呢?哎呀,我实际上在代码中正确地键入了选择器,但很快就在浏览器中编辑了它。这是因为我使用的是.value而不是.val。所以解释是你不能在js中使用DOM属性?我看到一些使用.html访问DOM属性的解决方案,我认为.this.value应该返回相同的结果?是的,它应该返回。@guest271314是的,结果将是相同的,但正如David指出的那样,使用this.value是可行的。由于选择器中缺少一个,jQuery方法无法工作。@NewToJS这是正确的答案。性能上可能没有太大差别,不过为什么要调用jQuery和.val而不是这个.value呢?哎呀,我实际上在代码中正确地键入了选择器,但很快就在浏览器中编辑了它。这是因为我使用的是.value而不是.val。所以解释是你不能在js中使用DOM属性?我想我看到了一些使用.html访问DOM属性的解决方案。