Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何选择和隐藏包含文本的类_Javascript - Fatal编程技术网

Javascript 如何选择和隐藏包含文本的类

Javascript 如何选择和隐藏包含文本的类,javascript,Javascript,我的html如下所示: <div class="row">Something</div> <div class="row">Text</div> <div class="row">Something</div> 什么 正文 某物 我不能触摸DOM,所以类将始终是“行” 实际代码: <div class="row"> <label class="ag label" for="firstname" opt-

我的html如下所示:

<div class="row">Something</div>
<div class="row">Text</div>
<div class="row">Something</div>
什么 正文 某物 我不能触摸DOM,所以类将始终是“行”

实际代码:

<div class="row">
<label class="ag label" for="firstname" opt-for="firstname-input" opt-char-limit="null">First Name</label>
<input class="ad"=""="" type="text" name="firstname" id="firstname" placeholder="">
</div>
<div class="row">
<label class="ag label" for="lastname" opt-for="lastname-input" opt-char-limit="null">HideThisField</label>
<input class="ad"=""="" type="text" name="lastname" id="lastname" placeholder="">
</div>
<div class="row">
<label class="ag label" for="email" opt-for="email-input" opt-char-limit="null">Email</label>
<input class="ad" required="" type="email" name="email" id="email" placeholder="">
</div>

名字
希德希斯菲尔德
电子邮件
我需要将包含“Text”的div设置为display:none。在Javascript中

此外,我将有多个“文本”隐藏自己的行


不知道从哪里开始,谢谢你的帮助

首先,不能有多个元素具有相同的ID

您应该改用类

例如:

var elems=document.getElementsByClassName('row');
对于(变量i=0;i
什么 某物 正文
带有多个ID的HTML无效。如果你真的不能改变DOM,那你的日子就不好过了

如果您不能,以下是您的一些选择:

使用jQuery.contains选择器检查文本内容:

如果不能做到这一点,您将不得不使用选择器的组合,如所有输入与某某类的组合,并向上导航到外部div等:jQuery有许多选择器:

您可以尝试使用:

var divs = document.querySelectorAll(".row");
    Array.from(divs, div => {
       if (div.textContent.indexOf("text") >= 0) {
        div.style.display = "none";
  }
});
此外,还必须用类行替换所有id行(因为页面上不能有相同的id)


Best

在HTML中,在一个文档中有多个相同的id值是无效的。这真的是您正在使用的HTML吗?“Something”是a和an。请发布一个你正在使用的HTML的真实例子。“这不重要,但“某物”是a和a”,这绝对重要。“每个标签/输入都有相同的唯一ID.”,注意到这句话中有什么奇怪的地方吗?两个东西不能有相同的唯一ID,否则它不是唯一的。这是什么?:)想象一个人和你的社会身份证号码相同。那会是个问题,对吗?了解类。
最近的
是一种jQuery方法。您还没有用jQuery标记它。你也应该展示你的尝试。有关更多信息,请参阅。为什么
中断
?OP说“我不能触摸DOM,所以id将始终为“行”&中断只是性能问题。当你发现ocurrence“而且我会有多个”文本“来隐藏自己的行”时,你就停止查看了,这个中断会使它出错。@VitaliyTerziev jQuery没有标记。