Javascript 如何基于文本而不是类单击按钮

Javascript 如何基于文本而不是类单击按钮,javascript,jquery,class,if-statement,Javascript,Jquery,Class,If Statement,我无法编辑此代码,使其在基于文本而非类的按钮中工作,也无法同时按类名和文本进行编辑 例如: <button class="same">plz-click-me</button> <button class="same">dont-click-me</button> 感谢并希望找到帮助我的答案您必须遍历可能匹配的元素,并选择那些textContent与您所需匹配的元素。您不能使用jQuery的。contains,因为子字符串clic

我无法编辑此代码,使其在基于文本而非类的按钮中工作,也无法同时按类名和文本进行编辑

例如:

    <button class="same">plz-click-me</button>
    <button class="same">dont-click-me</button>

感谢并希望找到帮助我的答案

您必须遍历可能匹配的元素,并选择那些
textContent
与您所需匹配的元素。您不能使用jQuery的
。contains
,因为子字符串
click me
包含在
dot-click-me
中:

const matching=Array.prototype.filter.call(
document.querySelectorAll('.same'),
({textContent})=>textContent=='单击我'
);
控制台日志(匹配)
点击我
不要点击我
var buttons=document.querySelectorAll(“按钮”);
var clickButton=Array.from(buttons).filter(button=>button.textContent===“单击我”)[0]
点击我

不要单击我
是否要根据元素的文本选择元素?对您来说“工作”意味着什么?而且,具有
.t3
隐藏元素
类的元素在哪里?是的,这正是我需要的。您需要一个循环来检查每个按钮的
。innerHTML
/
.html()
是否为
“单击我”
@ChrisG而不是
。innerHTML
(当然不是在循环中)
.textContent
。但是,不只是基于另一个条件获取元素。
.getElementsByTagName()
返回活动节点列表。每次访问变量时,都会重新扫描整个文档以查找匹配的节点,从而影响性能。将其与循环一起使用只会使它们复合。改为使用
.querySelectorAll()
。我认为getElementsByTagName在性能方面比querySelectorAll更好,一点也不
.querySelector()
.querySelector()
是较新的DOM查询方法
.getElementsByTagName()
.getElementsByName()
.getElementsByClassName()
都会返回活动节点列表并遇到相同的问题。现在,您只需通过向OP展示如何在正确的按钮上设置
单击事件处理程序来完成回答。谢谢大家。。我编辑代码以查看codepen上的完整脚本我不能编辑脚本,因为我是js初学者,所以我希望我能找到关于代码的帮助。。。谢谢大家。。我编辑代码以查看codepen上的完整脚本我不能编辑脚本,因为我是js初学者,所以我希望我能找到关于代码的帮助。。。谢谢大家。。我编辑代码以查看codepen上的完整脚本我不能编辑脚本,因为我是js初学者,所以我希望我能找到关于代码的帮助。。。codepen.io/boda/pen/VGQXem
 var inputs = document.querySelectorAll('.same:not(.hidden_elem)');