在javascript中,如何更改类型为“number”的属性的值?

时间:2012-07-18 23:25:11

标签: javascript jquery jquery-ui

typeof document.getElementById('foo').bar('value') //returns "number"

我想改变'价值'。

console.log(document.getElementById('foo').bar('value')) // 10

我不能只是数字的值,它会合理地抛出一个错误:

document.getElementById('foo').bar('value')) = 12 // ReferenceError: Invalid left-hand side in assignment
10 = 12 // ReferenceError: Invalid left-hand side in assignment

你如何设置bar的值?

这个特殊的例子适用于jquery提供的滑块,所以实际的代码(我试图改变它的值看起来像这样:

$('#slider').slider.val(function (index, value) {
  return value + '' + deltaY + '%'})

但是我在这里粘贴了一个长错误:https://gist.github.com/2e65bbf1578f7ea27bb0

  

“...}没有方法'val'”

3 个答案:

答案 0 :(得分:0)

如果要设置输入元素的value属性,它始终是一个字符串(设置时将转换为一个字符串)。

bar()方法的调用返回一个值(不是“指针”),当然也不能分配给它。您需要做的是函数返回不同的结果显然在很大程度上取决于该函数。


error you get来自表达式$('#slider').slider.val... - $.fn.slider,您在此处访问的函数,没有属性“val”(因此您无法调用)。你想在那里做什么?阅读您仔细使用的滑块插件的文档。

答案 1 :(得分:0)

无论是什么:

$('#slider').slider

没有方法调用val()

因此,调用$('#slider').slider.val(...)显然不起作用。

没有测试过,但是slider可能是一个返回对象的函数吗?

$('#slider').slider().val(...)

答案 2 :(得分:0)

我认为这个问题的标题和第一部分是红鲱鱼。

我相信您正在尝试使用JQuery UI滑块方法?如果是这样,那就像Bergi建议并阅读文档一样。如果我正确理解您的需求,那么您应该注意以下内容:  http://jqueryui.com/demos/slider/

在“值”部分的“选项”标签下

代码示例
使用指定的值选项初始化滑块。

$( ".selector" ).slider({ value: 37 });      

在init之后获取或设置值选项。

//getter
var value = $( ".selector" ).slider( "option", "value" );
//setter
$( ".selector" ).slider( "option", "value", 37 );