Javascript 将返回函数分配给另一个变量(此)
JS: HTML:Javascript 将返回函数分配给另一个变量(此),javascript,html,variables,return,this,Javascript,Html,Variables,Return,This,JS: HTML: 我需要将selectPeg(…)函数返回的“color”传递给另一个变量,但在处理代码时,这似乎会给我带来不同的错误。有人知道如何将返回颜色放入“v”变量吗? 函数selectPeg(元素){ var v=element.getAttribute(“数据颜色”); 控制台日志(v); } 黄色的 蓝色 红色 绿色 行var v=selectPeg(此),则会导致错误。原因是this的值是窗口,在selectPeg函数中,element.id将给出未定义的值 通过首先选择
我需要将selectPeg(…)函数返回的“color”传递给另一个变量,但在处理代码时,这似乎会给我带来不同的错误。有人知道如何将返回颜色放入“v”变量吗?
函数selectPeg(元素){
var v=element.getAttribute(“数据颜色”);
控制台日志(v);
}
黄色的
蓝色
红色
绿色
行var v=selectPeg(此)如果从全局范围调用代码>,则会导致错误。原因是this
的值是窗口,在selectPeg
函数中,element.id
将给出未定义的值
通过首先选择元素,可以调用selectPeg
<table>
<tr>
<td><div id="selectpeg1" onclick="selectPeg(this)" data-color="yellow"></div></td>
<td><div id="selectpeg2" onclick="selectPeg(this)" data-color="blue"></div></td>
<td><div id="selectpeg3" onclick="selectPeg(this)" data-color="red"></div></td>
<td><div id="selectpeg4" onclick="selectPeg(this)" data-color="green"></div></td>
</tr>
</table>
然后打电话
var elem = document.getElementById('selectpeg1');
另外请注意,函数selectPeg
中不需要调用document.getElementById(id)
。
因此,在click事件的情况下,您将获得元素,无需再次获取id并调用getElementById
如果需要颜色值,则可以在函数外部声明变量并在函数内部填充,如下所示:
varv;
函数selectPeg(元素){
//var id=element.id;
//var color=document.getElementById(id).getAttribute(“数据颜色”);
var color=element.getAttribute(“数据颜色”);
v=颜色;
}
document.getElementById('btn')。onclick=function(){
控制台日志(v);
}
1.
2.
3.
4.
getV
尝试使用var v=selectPeg(document.getElementById('selectpeg1')代码>–此
的值可以根据使用位置进行更改。在onclick
属性之外,它不会自动引用任何
元素。是的,但我希望函数根据单击的div返回颜色。不只是返回第一个元素的颜色,当用户与它们交互时,事件将为您提供每个元素。您将希望在处理程序中调用另一个函数,而不是全局调用onclick=“yourOtherFunction(selectPeg(this))”
。好的,但我希望用户单击具有特定颜色的div,然后将其传递给变量“v”。请参阅我编辑的解决方案。我在单击时创建了一个按钮,您将获得存储在v中的颜色。整个问题是当您在函数中返回颜色时(return color;)。并尝试根据单击的div将该函数分配给外部变量。你知道我的意思吗?@szubansky当你单击并从click handler函数返回时,你永远不会到达行var v=selectPeg(这个)代码>因为此行没有调用事件处理程序。若你们想到达那个里,你们必须从那个里调用你们的函数,就像我之前展示的那个样。好的,有什么方法可以处理If语句吗?因此,如果单击selectpeg1,函数将返回黄色,如果单击selectpeg2,函数将显示蓝色等。我使用此函数从用户那里获得4个颜色猜测,然后将其与计算机生成的颜色进行比较,因此我需要进行某种比较
var elem = document.getElementById('selectpeg1');
var v = selectPeg(elem);