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)');