我现在研究的时间较长,但我找不到我真正需要的解决方案。所以我想我会在这里问。
我现在正在使用Wordpress主题,并且有一个时间表。在这个时间表中,有#34;注册"每个活动的按钮,以便您可以预订。如果事件能够预订,则必须插入URL。如果它无法在那里预订"#"代替。但是"注册"按钮仍然显示两个选项,但您无法预订。
所以现在我试图使按钮看不见有"#"作为一个URL,但我不知道如何。我想JS是最好的完成它?!
结构就是这样:
<div class="sc_schedule_button">
<a href="#">Register</a>
</div>
也许你们其中一个人可以帮我找到解决方案。非常感谢=)
答案 0 :(得分:7)
为什么在使用CSS隐藏它时使用JavaScript
[href="#"] {
display: none;
}
&#13;
<a href="#sss">A</a>
<a href="#">B</a>
<a href="http://www.example.com#">C</a>
&#13;
如果你想用JavaScript
var anchors = document.querySelectorAll('[href="#"]')
anchors.forEach( function (el) {
if(el.getAttribute('href') === '#') el.setAttribute('hidden', true)
})
&#13;
<a href="#sss">A</a>
<a href="#">B</a>
<a href="http://www.example.com#">C</a>
&#13;
如果您必须隐藏父级,则只需选择带有JavaScript的父级
即可
var anchors = document.querySelectorAll('[href="#"]')
anchors.forEach( function (el) {
if(el.getAttribute('href') === '#') el.parentNode.setAttribute('hidden', true)
})
&#13;
<div><a href="#sss">A</a></div>
<div><a href="#">B</a></div>
<div><a href="http://www.example.com#">C</a></div>
&#13;
在浏览器中尚未使用CSS隐藏父级。我们需要等到主流浏览器支持has()。如果是,那就是.sc_schedule_button:has(a[href="#"]) {}
答案 1 :(得分:0)
JQuery是一个选项吗?如果是,您可以使用此选择器在您的href中选择#所有链接:
$("a[href*=#]")
然后你可以.hide()这些元素。
答案 2 :(得分:0)
将<{1}}用于此
querySelectorAll
var a = document.querySelectorAll("a[href='#']");
a.forEach(function(a){
var p = a.parentNode;
p.style.display = "none";
});