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>