当网址中存在特定字符串时隐藏元素

时间:2015-12-29 06:13:29

标签: javascript wordpress woocommerce

我想隐藏一个按钮,当字符串"批发'存在于网址中。我已经尝试了以下代码的一些变体,但它只是不起作用。

<script type="text/javascript">
$(document).ready(function () {
    if (/wholesale/.test(window.location.href)) {
       document.getElementsByClassName('variations_button')[0].style.display = 'none';
    }
});
</script>

3 个答案:

答案 0 :(得分:0)

可能会有所帮助。

 var patt = new RegExp("wholesale");
    if (patt.test(window.location.href)) {
          $('.variations_button').hide();
        }

答案 1 :(得分:0)

你通过类名代码

搞错了select元素

它应该是这样的:

document.getElementsByClassName('variations_button')[0].style.display='none'

注意:

document.getElementsByClassName返回具有相同类名的元素数组。因此document.getElementsByClassName('variations_button')[0]将返回类名为variations_button的第一个元素。

答案 2 :(得分:0)

您遇到getElementByClassName问题,它应该是getElementsByClassName并且会返回HTMLCollection(类似对象的数组)而不是元素。你应该也可以使用jQuery,如果它已经加载到页面上。 jQuery是一个类似于HTMLElements对象的数组,它将为您提供将在整个集合上运行的方法。

编辑: 这是一个工作示例,单击“运行代码段”以查看结果。我不得不改变正则表达式以匹配片段中的内容,但你应该明白这一点。

console.log( 'is jQuery installed on the page', typeof $ !== void 0 );
$(function () {
  console.log( 'href', window.location.href );
  if (/stacksnippets/.test(window.location.href)) {
    console.log('regex found in href');
    $('.variations_button').css('background', '#3cf');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://codepen.io/synthet1c/pen/WrQapG.js"></script>
<button class="variations_button">variations button</button>