jQuery检查href是否未定义

时间:2014-05-03 12:24:19

标签: jquery

我想检查锚标记何时没有href值,即使标记中存在href,然后向用户显示消息。例如

HTML:

注意 - 我无法更改此锚标记的定义方式,因此我无法添加href =" ",html由wordpress填充,我不想改变它

jQuery的:

$('a').click(function (e) {
    if ($(this).attr('href') == '') { 
        alert('We do not have more info on this');
        e.preventDefault();
    }
})

上述代码仅在href定义如下时才有效:

<a href="" ></a>

如何更改我的jQuery以检查href是否存在,但未定义,如上面的html中所示?我尝试了以下方法,但也无效:

if ($(this).attr('href') === undefined) { 

由于

3 个答案:

答案 0 :(得分:3)

undefined和空字符串都是假的,所以你要做的就是直接检查属性,而不是专门检查空字符串

$('a').click(function (e) {
    if (! $(this).attr('href') ) {
        alert('We do not have more info on this');
        e.preventDefault();
    }
});

FIDDLE

答案 1 :(得分:1)

您可以根据undefinetrim值查看该值并与''进行比较,试试这个:

$('a').click(function (e) {
    var href = $(this).attr('href');
    if (href === undefined || $.trim(href) === '') {
        alert('We do not have more info on this');
        e.preventDefault();
    }
});

<强> Demo Link

答案 2 :(得分:0)

您可以改为使用选择器:

$('a:not([href]), a[href=""]').click(function (e) {
    alert('We do not have more info on this');
    e.preventDefault();
})