使用 Javascript 根据正文隐藏元素 class
Using Javascript to hide element class based on body text
我有一个动态生成的页面,它根据用户是否登录来更改内容。
因此,根据网页正文 中的文本,我想隐藏 一些元素。
示例HTML:
<div class="button-wrapper">
<a class="button-1" href="/upload" id="button-pop">
<span class="button-text">Upload New Product</span>
</a>
</div>
<div class="wv-signupnotice">
<h3>Sign up to start learning</h3>
<p>Help children in rural communities</p>
</div>
所以我想隐藏 class .button-wrapper
如果在网页上找到文本 "rural communities" ,或者类似地,如果 class .wv-signupnotice
存在。
这里是 Javascript 我试了没用:
let divs = document.getElementsByClassName('button-wrapper');
for (let x = 0; x < divs.length; x++) {
let div = divs[x];
let content = div.innerHTML.trim();
if (content == 'rural communities') {
div.style.display = 'none';
}
}
非常感谢您的帮助!
let divs = document.getElementsByClassName('button-wrapper');
此函数将return 具有button-wrapper class 的元素集合。如果文档中存在任何其他带有 wv-signupnotice 的 div,则遵循将隐藏此 div 的代码。希望对你有帮助。
let divs = document.getElementsByClassName('button-wrapper');
$(document).ready(function() {
if($('div').hasClass("wv-signupnotice"))
divs[0].style.display="none";
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="button-wrapper">
<a class="button-1" href="/upload" id="button-pop">
<span class="button-text">Upload New Product</span>
</a>
</div>
<div class="wv-signupnotice">
<h3>Sign up to start learning</h3>
<p>Help children in rural communities</p>
</div>
你在你的情况下检索的 innerHTML 永远不会等于 'rural communities' 因为 innerHTML 实际上会像 'a class="...rural communities...span>../a>'
认为你应该选择 indexOf 而不是:
let divs = document.getElementsByClassName('button-wrapper');
for (let x = 0; x < divs.length; x++) {
let div = divs[x];
let content = div.innerHTML.trim();
if (content.indexOf('rural communities') > -1) {
div.style.display = 'none';
}
}
我有一个动态生成的页面,它根据用户是否登录来更改内容。
因此,根据网页正文 中的文本,我想隐藏 一些元素。
示例HTML:
<div class="button-wrapper">
<a class="button-1" href="/upload" id="button-pop">
<span class="button-text">Upload New Product</span>
</a>
</div>
<div class="wv-signupnotice">
<h3>Sign up to start learning</h3>
<p>Help children in rural communities</p>
</div>
所以我想隐藏 class .button-wrapper
如果在网页上找到文本 "rural communities" ,或者类似地,如果 class .wv-signupnotice
存在。
这里是 Javascript 我试了没用:
let divs = document.getElementsByClassName('button-wrapper');
for (let x = 0; x < divs.length; x++) {
let div = divs[x];
let content = div.innerHTML.trim();
if (content == 'rural communities') {
div.style.display = 'none';
}
}
非常感谢您的帮助!
let divs = document.getElementsByClassName('button-wrapper');
此函数将return 具有button-wrapper class 的元素集合。如果文档中存在任何其他带有 wv-signupnotice 的 div,则遵循将隐藏此 div 的代码。希望对你有帮助。
let divs = document.getElementsByClassName('button-wrapper');
$(document).ready(function() {
if($('div').hasClass("wv-signupnotice"))
divs[0].style.display="none";
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="button-wrapper">
<a class="button-1" href="/upload" id="button-pop">
<span class="button-text">Upload New Product</span>
</a>
</div>
<div class="wv-signupnotice">
<h3>Sign up to start learning</h3>
<p>Help children in rural communities</p>
</div>
你在你的情况下检索的 innerHTML 永远不会等于 'rural communities' 因为 innerHTML 实际上会像 'a class="...rural communities...span>../a>'
认为你应该选择 indexOf 而不是:
let divs = document.getElementsByClassName('button-wrapper');
for (let x = 0; x < divs.length; x++) {
let div = divs[x];
let content = div.innerHTML.trim();
if (content.indexOf('rural communities') > -1) {
div.style.display = 'none';
}
}