首页 > 解决方案 > 如果 url 未定义,则隐藏按钮

问题描述

url如果值未定义,我想隐藏一个按钮。我传递了一个属性并添加到一个类中。

<script="text/javascript">
.........
 j('.url').attr('href',ContextPath + home);

</script>

并且按钮的定义如下

<a href="#header" class="btn btn-black txt-white url" title="button">
    <i class="fa fa-user fa-fw" aria-hidden="true"></i>
</a>

如果 url 未定义,我想隐藏按钮。我写了这个 jquery 代码,但它不起作用。

<script type="text/javascript">
    jQuery (document).ready(function($) {

    $('url').children('a').each(function() {
        if(($(this).attr('url')=='undefined'))
        $(this).hide();
    })
})  
 </script>

如果您按下发送到网址 http:/www.home/pagenull 的按钮,我希望按钮隐藏而不是将您发送到网址 http:/www.home/pagenull 并在网址不是时显示按钮http://www.home/pagenull。我已经尝试了答案,但它们不起作用任何想法?

标签: jquerybuttonhide

解决方案


你的语法不正确。


改变:

<script="text/javascript">
.........
 j('.url').attr('href',ContextPath + home);

</script>

至:

<script="text/javascript">
 $('.url').attr('href',ContextPath + home);
</script>

这里有一些问题:

  • j('.url')不是有效的 jQuery;从 >j('.url')到 >$('.url')
  • 那些时期:.........可能会引起问题。

改变:

jQuery (document).ready(function($) {

    $('url').children('a').each(function() {
        if(($(this).attr('url')=='undefined'))
        $(this).hide();
    })
}) 

至:

$(document).ready(function() {
    $('.url').each(function() {
        if( $(this).attr('href') == undefined )
        $(this).hide();
    });
});

这里有一些问题:

  • 忘记 '。' 在类选择器前面;从 > $('url') to >$('.url')
  • .attr('url')不是$(this);的有效属性 从 >.attr('url')到 >.attr('href')
  • 'undefined' 不应该是字符串;从 > '未定义' 到 > 未定义
  • 缺少结尾';' ~ 使代码更易于阅读。
  • .each操作员没有针对正确的元素;从 >$('url').children('a').each到 >$('url').each

推荐阅读