Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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_Html_Variables_Return_This - Fatal编程技术网

Javascript 将返回函数分配给另一个变量(此)

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将给出未定义的值 通过首先选择

JS:

HTML:


我需要将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);