如何使用javascript或react检查某个标记中的某些文本在网页上是否可见?

如何使用javascript或react检查某个标记中的某些文本在网页上是否可见?,javascript,reactjs,Javascript,Reactjs,我是编程新手,想检查文档中是否存在带有文本“hello”的h3标记 考虑下面的html <div class= "parent_div"> <div class="child_div"> <h3>hello</h3> </div> </div> 你好 现在我想检查当前查看的文档中是否存在parent_div类中的h3元素。如何使用javascript实现这一点 我尝试过使用documen

我是编程新手,想检查文档中是否存在带有文本“hello”的h3标记

考虑下面的html

<div class= "parent_div">
    <div class="child_div">
        <h3>hello</h3>
    </div>
</div>

你好
现在我想检查当前查看的文档中是否存在parent_div类中的h3元素。如何使用javascript实现这一点

我尝试过使用document.querySelector(“div.parent_div h3[text()=“hello”]”)


这是行不通的。我该怎么做呢。有人能帮我吗。谢谢。

这可能是一种使用vanilla js的方法:

const checkExist=document.querySelector(“.parent\u div.child\u div h3”)。innerText==“你好”
console.log(检查存在)

你好

这可能是一种使用vanilla js的方法:

const checkExist=document.querySelector(“.parent\u div.child\u div h3”)。innerText==“你好”
console.log(检查存在)

你好

你好
var h3=document.getElementsByTagName('h3');
警报(h3.length==0?'notexist':'exists,文本为:'+h3[0].innerHTML);

你好
var h3=document.getElementsByTagName('h3');
警报(h3.length==0?'notexist':'exists,文本为:'+h3[0].innerHTML);

根据您的评论,在React的情况下,如果您不希望侧面板(或)在图像加载之前可展开,您可以使用回调将抽屉的状态设置为仅在图像加载后才可展开

类抽屉扩展React.Component{
建造师(道具){
超级(道具);
此.state={
可扩展:道具,可扩展,
扩展:false
};
}
render(){
常量扩展按钮=(
this.setState({expanded:!this.state.expanded})}>
{this.state.expanded?“单击关闭…”:“单击展开!”)
);
const drawerContent=this.state.expanded(
我扩张了

) : ( 我没有扩展:(

); 返回( {expandButton} {drawerContent} ); } } 类应用程序扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 付款人可扩展:false }; } render(){ 返回( this.setState({paurexpandable:true}) /> ); } } ReactDOM.render(,document.getElementById(“根”);

根据您的评论,在React的情况下,如果您不希望侧面板(或)在图像加载之前可展开,您可以使用回调将抽屉的状态设置为仅在图像加载后才可展开

类抽屉扩展React.Component{
建造师(道具){
超级(道具);
此.state={
可扩展:道具,可扩展,
扩展:false
};
}
render(){
常量扩展按钮=(
this.setState({expanded:!this.state.expanded})}>
{this.state.expanded?“单击关闭…”:“单击展开!”)
);
const drawerContent=this.state.expanded(
我扩张了

) : ( 我没有扩展:(

); 返回( {expandButton} {drawerContent} ); } } 类应用程序扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 付款人可扩展:false }; } render(){ 返回( this.setState({paurexpandable:true}) /> ); } } ReactDOM.render(,document.getElementById(“根”);


如果您使用的是reactjs,请使用state对象来处理此类问题,不要使用queryselect或完全同意@Pardeep,如果您使用的是react,请使用react state调用此处的方向:您为什么要这样做?您想解决的问题是什么?尤其是在react情况下?我必须展开侧面板(可以关闭和打开)基于名为“扩展”的状态是真的。当图像加载时,这是真的。现在,如果我在问题中询问的元素被看到,我不希望此侧面板展开……我没有状态来跟踪此元素。因此,我认为最好使用queryselector。@someuser2491我同意所有人的意见,在react的情况下,您不应该使用queryselector帽子。即使在vanilla js的情况下,你也可能不应该使用它:更好的方法是实现一个命令,让代码负责图像,通知它已加载,然后让负责抽屉的代码相应地响应。在任何情况下,我都发布了react案例的答案。如果你使用reactjs,请使用此kin的状态对象如果您正在使用react使用react state调用此处的方向,则d of stuff不使用QuerySelect或完全同意@Pardeep:为什么要这样做?您想解决的问题是什么?特别是在react情况下?我必须根据名为“expanded”的状态展开侧面板(可以关闭和打开)是真的。当图像加载时,这是真的。现在,如果我在问题中询问的元素被看到,我不希望此侧面板展开……我没有状态来跟踪此元素。因此,我认为最好使用queryselector。@someuser2491我同意所有人的意见,在react的情况下,您不应该使用queryselector帽子。即使在vanilla js的情况下,你也不应该使用它:更好的方法是实现一个让代码负责图像,通知它已加载,然后让负责抽屉的代码相应地响应。在任何情况下,我发布了react情况的答案。谢谢,但如果元素不存在,它会给出错误。s哦,应该有某种检查,我想谢谢。但是如果这个元素不存在,它就给了错误。所以应该有某种检查。我想谢谢。实际上情况比这稍微复杂一些…我的问题是现在我考虑哈。
<div class= "parent_div">
    <div class="child_div">
        <h3>hello</h3>
    </div>
</div>
<script type="text/javascript">
    var h3=document.getElementsByTagName('h3');
    alert(h3.length===0?'not exist':'exists, and text is :'+h3[0].innerHTML);
</script>