在TaffyDB查询中使用JS变量返回未定义
Using JS variable in TaffyDB query returns undefined
我有一个TaffyDB,其中包含来自RPG的道具配方。每个道具都有一个布尔值来声明它是否在游戏中被"混合"。
var recipes = TAFFY([
{id:0, name:'Potion', mixed:false},
{id:1, name:'Hi-Potion', mixed:false},
{id:2, name:'Mega-Potion', mixed:false}
]);
生成一个HTML表,其中每个配方都有一个表示"mixed"变量的复选框。每个复选框都有value=X
,其中X
对应于数据库中项目的ID。我检测复选框更改,并尝试使用以下命令更新数据:
$('input:checkbox').on('change', function() {
var val = $(this).val();
var checked = $(this).is(':checked');
recipes({id:val}).update({mixed:checked});
alert('Updated recipe id: ' + val +
''nRecipe: ' + recipes({id:val}).first().name +
''nValue should be ' + checked +
''nValue is ' + recipes({id:val}).first().mixed);
}
当尝试使用recipes({id:val}).first().name
和.mixed
获取变量时,总是返回undefined
。update调用也不会更改值。然而,如果我把所有的查询改为recipes({id:0})
,它工作得很好,但它只报告和更新第一个复选框。
据我所知,它不喜欢javascript变量val
和checked
时做做查询,如recipes({id:val})
,但很好与文字0
。
JSFiddle: http://jsfiddle.net/w6g6W/12/
结果显示$(this).val()
返回的是字符串,而不是整型。
将var val = $(this).val();
替换为var val = parseInt($(this).val());
相关文章:
- JS变量返回的对象不是值
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 向AngularJS目录添加JS变量
- 在使用cq:include包含外部JS之前,如何在JSP中包含全局JS变量
- 将PHP数组传递给js变量
- 如何从谷歌脚本中获取JS变量
- 敲除js变量设置类似于调用函数
- 带破折号的Ractive.js变量
- jQuery在MVC应用程序中设置JS变量
- HTML按钮获胜't更改JS变量
- 在跨子域上将JS变量从子Iframe传递给父JSP
- 理解bootstrap.js变量声明
- 使用HTML标记中的JS变量在Javascript中动态创建HTML
- 访问JQuery中的vue-js变量
- AJAX将JSON数组保存到多个JS变量中
- 在构造控制器、服务等时作为函数参数传递之前列出的角度 JS 变量
- 将JS变量作为文本返回以发送到Google Analytics
- 将JS变量传递到php数组
- 如何将JS变量异步发送到Rails
- 正在读取JS变量