Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:如何在单击按钮时访问对象?_Javascript - Fatal编程技术网

Javascript:如何在单击按钮时访问对象?

Javascript:如何在单击按钮时访问对象?,javascript,Javascript,我试图了解如何创建和更新对象以响应用户单击按钮。我将使用cytoscape.js作为本练习的一部分,在页面加载时创建一个图形后,单击一个按钮将使用节点数更新页面上的一个框。检索带有document.getElementById('cy')的图形对象cy会返回一些内容,但随后尝试访问节点失败,因为对象方法(如.elements()或.nodes())未定义。很明显,我要返回的对象.getElementById('cy')不是graph对象 所以我的问题是,如何访问graph对象 函数计数\u节点

我试图了解如何创建和更新对象以响应用户单击按钮。我将使用cytoscape.js作为本练习的一部分,在页面加载时创建一个图形后,单击一个按钮将使用节点数更新页面上的一个框。检索带有document.getElementById('cy')的图形对象cy会返回一些内容,但随后尝试访问节点失败,因为对象方法(如.elements()或.nodes())未定义。很明显,我要返回的对象.getElementById('cy')不是graph对象

所以我的问题是,如何访问graph对象

函数计数\u节点(){
变量节点计数=0;
var cy=document.getElementById('cy');
控制台日志(cy)
console.log(cy.elements(“[foo>1]”);
document.getElementById('out')。value=node\u count;
}
$(函数(){//on dom ready
变量elesJson={
节点:[
{数据:{id:'a',foo:3,bar:5,baz:7},
{数据:{id:'b',foo:7,bar:1,baz:3},
{数据:{id:'c',foo:2,bar:7,baz:6},
{数据:{id:'d',foo:9,bar:5,baz:2},
{数据:{id:'e',foo:2,bar:4,baz:5}
], 
边:[{data:{id:'ae',权重:1,源:'a',目标:'e'},
{数据:{id:'ab',权重:3,源:'a',目标:'b'},
{数据:{id:'be',权重:4,源:'b',目标:'e'},
{数据:{id:'bc',权重:5,源:'b',目标:'c'},
{数据:{id:'ce',权重:6,源:'c',目标:'e'},
{数据:{id:'cd',权重:2,源:'c',目标:'d'},
{数据:{id:'de',权重:7,源:'d',目标:'e'}
]
};
$('#cy')。细胞景观({
样式:cytoscape.stylesheet()
.selector('节点')
.css({
“背景色”:“B3767E”,
“宽度”:“地图数据(baz,0,10,10,40)”,
“高度”:“地图数据(baz,0,10,10,40)”,
'内容':'数据(id)'
})
.selector('边')
.css({
“线条颜色”:“F2B1BA”,
“目标箭头颜色”:“F2B1BA”,
“宽度”:2,
“目标箭头形状”:“圆”,
“不透明度”:0.8
})
.selector(“:selected”)
.css({
“背景色”:“黑色”,
“线条颜色”:“黑色”,
“目标箭头颜色”:“黑色”,
“源箭头颜色”:“黑色”,
“不透明度”:1
})
.selector(“.flated”)
.css({
“不透明度”:0.25,
“文本不透明度”:0
}),
元素:elesJson,
布局:{
名称:'圆圈',
填充:10
},
就绪:函数(){
//就绪1
}
});
}); // 在dom就绪时

节点数
计数

我在那里没有看到方法
elements()
。好的,那么我如何在单击按钮时访问图形对象(cy)?澄清一下,是cytoscape对象
cy
具有方法
elements()
,我的问题是单击按钮后如何访问该对象。是的,这是基本的JavaScript。请注意,每个事件处理程序都有一个
事件
参数,以及获取
的方法。还要阅读变量作用域规则:在函数中声明的
var
仅在该函数中可见,当它消失时消失。但JavaScript作为一种语言,基本上没有“编译时间”。其他编译器会检测到的语法和语义错误。。。JS不会。(这也是为什么“transpilers”变得如此流行的一个重要原因。transpilers从“更强大”的语言中的源代码生成JS。)