如果href =#,请删除按钮

时间:2018-03-28 12:25:03

标签: javascript wordpress class themes invisible

我现在研究的时间较长,但我找不到我真正需要的解决方案。所以我想我会在这里问。

我现在正在使用Wordpress主题,并且有一个时间表。在这个时间表中,有#34;注册"每个活动的按钮,以便您可以预订。如果事件能够预订,则必须插入URL。如果它无法在那里预订"#"代替。但是"注册"按钮仍然显示两个选项,但您无法预订。

所以现在我试图使按钮看不见有"#"作为一个URL,但我不知道如何。我想JS是最好的完成它?!

结构就是这样:

<div class="sc_schedule_button">
    <a href="#">Register</a>
</div>

也许你们其中一个人可以帮我找到解决方案。非常感谢=)

3 个答案:

答案 0 :(得分:7)

为什么在使用CSS隐藏它时使用JavaScript

&#13;
&#13;
[href="#"] {
  display: none;
}
&#13;
<a href="#sss">A</a>
<a href="#">B</a>
<a href="http://www.example.com#">C</a>
&#13;
&#13;
&#13;

如果你想用JavaScript

&#13;
&#13;
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;
&#13;
&#13;

如果您必须隐藏父级,则只需选择带有JavaScript的父级

即可

&#13;
&#13;
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;
&#13;
&#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";
});