Javascript 隐藏时按id获取元素并显示:无

Javascript 隐藏时按id获取元素并显示:无,javascript,reactjs,d3.js,Javascript,Reactjs,D3.js,我正在使用React,并试图通过id获取元素。我知道我应该使用ref,但我不能让它工作。但是,d3可以工作:它可以得到我想要的元素,但不能得到那些具有visibility:hidden和display:none的元素。是否可以使d3选择隐藏元素?以下是我拥有的部分代码: <div style={{display: this.state.fullAnalysisDone && this.state.activeKey === 0 ? 'block' : 'none',

我正在使用
React
,并试图通过
id
获取元素。我知道我应该使用
ref
,但我不能让它工作。但是,
d3
可以工作:它可以得到我想要的元素,但不能得到那些具有
visibility:hidden
display:none
的元素。是否可以使
d3
选择隐藏元素?以下是我拥有的部分代码:

<div style={{display: this.state.fullAnalysisDone && this.state.activeKey === 0 ? 'block' : 'none', 
      visibility: this.state.fullAnalysisDone && this.state.activeKey === 0 ? 'visible' : 'hidden'}}>
        {
        this.get_analysis_charts(this.chartTypes[this.state.activeKey]).map((chart_img, idx) => {
          return <img id = {'chart_' + this.state.activeKey + '_' + idx} src = {chart_img} style = {{width:"400px"}}
            onClick={() => this.clickedResultPageImg(idx)}/>
        })
      }
    </div>

{
this.get\u analysis\u charts(this.chartTypes[this.state.activeKey]).map((chart\u img,idx)=>{
返回此项。单击edResultPageImg(idx)}/>
})
}
当我尝试通过
id
获取
img
时:
d3.select(chartId).node()
在隐藏的div中,我什么也得不到。这里可能存在与
stackoverflow
上未回答的问题相同的问题:


在我的浏览器中,它适用于
getElementById
d3。选择()
,即使
div
p
都是
{display:none;visibility:hidden;}

使用隐藏的
p
和隐藏的
img

函数changePara(paraId,newColor){
var elem=document.getElementById(paraId);
console.log(“changePara”、paraId、elem);
如果(elem){elem.style.color=newColor;}
}
函数changeColor(newColor){
changePara('para1',newColor);
changePara('para2',newColor);
}
函数changeParaD3(paraId,newColor){
var elem=d3.select(`${paraId}`);
log(“changeParaD3”,paraId,elem.size());
if(elem.size()){elem.style(“color”,newColor);}
}
函数changeColorD3(新颜色){
changeParaD3(“para1”,新颜色);
changeParaD3(“para2”,新颜色);
}
.nose{显示:无;可见性:隐藏;}
#para2{显示:无;可见性:隐藏;}

一些文本

蓝色 红色

蓝色-d3
red-d3
如果元素在DOM中,你应该找到它,确保元素在DOM中,并且你使用了正确的选择器。当我在没有任何样式的情况下在一个div中添加所有图像时,它工作正常,但是使用
display:none
它工作正常not@NikitaVlasenko在select语句中,
chartId
的值是多少?它是否具有按id选择所需的前导
#
?是的,它具有。它的形式为
#chart_0_0
#chart_0_1
,等等。正如rioV8所示,它通常会按预期工作。你能设置一个可执行的演示来复制这个问题吗?