jQuery - 如果href属性为空

5
我正在尝试找出如果href属性为空,则执行某些操作,我的代码如下...
jQuery('#sidebar a').click(function() {

     var bob = jQuery(this).attr("href");

     if(jQuery(bob).attr() == "") {
            alert('I am empty href value');
        }

    });

我不确定我做错了什么?有什么建议吗?谢谢!


attr() 中你忘记了 "href" - Pekka
6个回答

8

你正在将 bob 作为选择器传递给 jQuery。直接测试它:

jQuery('#sidebar a').click(function() {

    var bob = jQuery(this).attr("href");

    if (bob == "") {
        alert('I am empty href value');
    }

});

或者更好的方法是,只需:
    if (!bob) {

Gratuitous live example


3

您正在设置一个变量,然后从未检查它。个人认为,甚至不需要创建变量;只需进行检查即可。

jQuery('#sidebar a').click(function() {
    if(jQuery(this).attr("href") == "") {
        alert('I am empty href value');
    }
});

2

使用这个替代

jQuery('#sidebar a').click(function() {

 var bob = jQuery(this).attr("href");

 if(bob === "") {
        alert('I am empty href value');
    }

});

2

伟大的人已经给出了答案。

只要检查 if(bob=="")

我想再添加一行。为了安全起见,您可以使用jQuery修剪bob。

bob = jQuery.trim(bob);

这将使有效性更加强大。

1
jQuery('#sidebar a').click(function() {

     if(jQuery(this).attr("href")==""){
            alert('I am empty href value');
        }

    });

使用jQuery再次过滤您的Bob是没有意义的。 :)


0

你已经将属性href定义为变量bob了。只需使用:

bob == ""

谢谢大家,这非常有帮助。我现在看到了我的错误。 - Phil
@Phil 请确保您接受您认为回答了您问题的答案。 - Michael Irigoyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接