Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Jquery_Css_Reactjs - Fatal编程技术网

Javascript 如何获取事件的背景色单击

Javascript 如何获取事件的背景色单击,javascript,jquery,css,reactjs,Javascript,Jquery,Css,Reactjs,我想获得div元素的背景色。 我定义了一个句柄单击,但它根本不起作用 这是我的密码: <div className="column" onClick={this.handleClick}>a</div> 我的输出是空的 我想使用if语句作为我的颜色。例如,我的颜色是黑色,我希望获得黑色颜色名称。我不清楚您是如何做到这一点的,但您似乎正在使用React语法。如果使用react,则问题可能是handleClick方法在该上下文中不受此约束。如果您对稍微不同的结构持开放态

我想获得
div
元素的
背景色。
我定义了一个句柄
单击
,但它根本不起作用

这是我的密码:

 <div  className="column" onClick={this.handleClick}>a</div>
我的输出是空的


我想使用
if
语句作为我的颜色。例如,我的颜色是黑色,我希望获得
黑色
颜色名称。

我不清楚您是如何做到这一点的,但您似乎正在使用React语法。如果使用react,则问题可能是handleClick方法在该上下文中不受此约束。

如果您对稍微不同的结构持开放态度:

<div id="column-1" class="column">a</div>

抱歉,我不使用reactJS,但希望这足以帮助您。

所以,我在评论中看到您说您正在使用reactJS。 有很多方法可以访问元素的样式。 这是一种方式:

import React, { PureComponent } from 'react';
import { findDOMNode } from 'react-dom';

    export default class Example extends PureComponent {

     handleClick = () => {
       console.log(findDOMNode(this.El).style.backgroundColor);
     };

     render(){
      return(<div 
          className="column"
          ref={(El) => { this.El = El; }}
          onClick={this.handleClick}
          >
            a
          </div>);
     }
    }
import React,{PureComponent}来自'React';
从'react dom'导入{findDOMNode};
导出默认类示例扩展了PureComponent{
handleClick=()=>{
log(findDOMNode(this.El).style.backgroundColor);
};
render(){
返回({this.El=El;}}
onClick={this.handleClick}
>
A.
);
}
}

我想你要找的是。无论样式在何处定义,此函数都可以获取样式。

尝试以下操作:

<div  className="column" onClick={this.handleClick.bind(this)}>a</div>

handleClick = e => {
let a = e.target.style.backgroundColor;
console.log(a);}
a
handleClick=e=>{
设a=e.target.style.backgroundColor;
console.log(a);}

首先,如果您想获取所单击的
div
,您应该使用
e.currentTarget
而不是
e.tartget

其次,您使用CSS类设置
backgroundColor
,这样
div
就没有
style.background
属性。如果您
console.log('e.currentTarget')
您可以看到它将要打印

 <div className="column">a</div>

使用jquery获得类似于背景色的样式的最简单方法:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Testin script</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>
<style type="text/css">
    .btn-hot{
        background-color: red;
        color: white; 
    }
</style>
<body>


    <div onclick="get_my_bg_color(this);" style="min-height: 50px;background-color: red;">

    </div>
    <script type='text/javascript'>
        function get_my_bg_color(me){
            console.log($(me)[0].style.backgroundColor);
        }
    </script>

</body>
</html> 

睾丸脚本
.btn热{
背景色:红色;
颜色:白色;
}
函数获取我的背景颜色(me){
console.log($(me)[0].style.backgroundColor);
}

我想获取div元素的颜色,然后根据第一个元素更改另一个颜色。是否使用React?是否确定有背景设置?当然,我在css的课堂专栏中设置了背景颜色,现在有很多人对这个问题感到困惑。与其对每个人说“当然”,不如在问题中提供一个完全有效的最小示例?另外,您真的要将jquery与React一起使用吗?当使用ReactJS时,这不是正确的解决方案,即使它因多种原因工作,最大的原因是它将被React的虚拟DOM覆盖。
 <div className="column">a</div>
handleClick(e){
    let cName = e.currentTarget.className;
    switch(cName) {
      case 'redBox':
        console.log('It is a red box');
        break;
      case 'blueBox':
        console.log('It is a blue box');
        break;
      default:
        console.log('I don\'t know the exact color');
        break;     
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Testin script</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>
<style type="text/css">
    .btn-hot{
        background-color: red;
        color: white; 
    }
</style>
<body>


    <div onclick="get_my_bg_color(this);" style="min-height: 50px;background-color: red;">

    </div>
    <script type='text/javascript'>
        function get_my_bg_color(me){
            console.log($(me)[0].style.backgroundColor);
        }
    </script>

</body>
</html>