我有一个空的TABLE。我有一个名为menu的数组,其中包含一些产品的列表。下面的代码迭代菜单并在表中创建与菜单数组中的产品一样多的行。
为了识别行中的产品,我能想到的最好方法是使用属性;data-ID="" 存储插入行中的产品的 id。
var id=[];
$(document).ready(function addMenuToTable() {
for ( var i in menu) {
$('#menutable').append('<tr class ="product" role="button" data-id=""><td class"num">'+menu[i].num+'</td><td class="td-width"><span><b>'+menu[i].name+' </b></span><br>'+menu[i].ingred+'</td><td>'+menu[i].price+'</td></tr>');
$('#menutable tr').attr('data-id', menu[i].id);
id.push( $('#menutable tr').attr('data-id'));
}
console.log(id);
});
Run Code Online (Sandbox Code Playgroud)
现在单击任何行,我想检索该特定产品的 id。
$(document).on('click','tr', function() {
var id = $(this).attr('data-id');
console.log(id);
});
Run Code Online (Sandbox Code Playgroud)
但是当我用 console.log 测试它时,我只得到最后一个产品 id,无论我点击哪一行。任何建议我做错了什么?
我正在尝试创建自定义节点,我正在尝试非常简单的一个。我需要使用节点的属性(用户从下拉列表中选择的值)通过 msg.payload 发送/输出该属性的值。
这是调试选项卡中的错误消息:
4/7/2017 21.45.06node: lolo
msg : error
"ReferenceError: $ is not defined"
Run Code Online (Sandbox Code Playgroud)
这是所需的输出:
“ppp[洛洛:m2]”
我删除了 js 文件中带有 $ 的行,因为它无法识别 jQuery。我用这个代替
msg.payload = msg.payload +"[" + nodeName+":"+ node.axis +"]";
Run Code Online (Sandbox Code Playgroud)
但在输出中,选项值未定义,而不是选择下拉列表中选项之一的值:
5/7/2017 11.34.22node: 5aa4aa59.f9fa04
msg.payload : string[19]
"ppp[lolo:undefined]"
Run Code Online (Sandbox Code Playgroud)
这是节点的 html 文件:
4/7/2017 21.45.06node: lolo
msg : error
"ReferenceError: $ is not defined"
Run Code Online (Sandbox Code Playgroud)
这是节点的 js 文件:
msg.payload = msg.payload +"[" + nodeName+":"+ node.axis +"]";
Run Code Online (Sandbox Code Playgroud)