【问题标题】:jQuery: Easy way to check if a href attribute is validjQuery:检查href属性是否有效的简单方法
【发布时间】:2012-02-09 14:42:42
【问题描述】:

我正在寻找一种非常简单的方法来检查何时有人点击了有效的链接。

不错

 <a href="index.html">some link</a>

不好:

<a href="#">some link</a>
<a href="javascript:void(0);">some link</a>

【问题讨论】:

  • 对您的特定格式使用正则表达式
  • 是的,但是我发现的所有检查完整 url 的模式,包括 'www.',这对于 index.html 之类的 url 不起作用:-)(没有找到任何模式是的)

标签: javascript jquery validation


【解决方案1】:

只需检查href 值:

$('a').click(function(){
  var bad = this.href.lastIndexOf('#') >= 0 || this.href.indexOf('javascript') >= 0;
  alert(bad ? 'Bad' : 'Good');
  return false;
});

Demo

【讨论】:

  • 很好,但是在使用 # 或 javascript:void(0) 时会给出真假值
  • 然后使用它? ;) 你没有指定输出应该是什么,只是你想验证它
  • 啊,这很完美,虽然不是那么简单,但它会做的,谢谢!!
  • 但在此代码中&lt;a href="index.html#javascript"&gt;link&lt;/a&gt; 在this.href.lastIndexOf('#') &gt;= 0 和this.href.indexOf('javascript') &gt;= 0 中无效,但我认为这应该评估为有效...不是吗?
【解决方案2】:

没有真正“简单”的方法,您必须获取 href 的值并像这样对它进行 ajax 调用:

var url = $('a').attr('href');
    $.ajax({
        url:url,
        type:'HEAD',
        error: function()
        {
            //file not exists
        },
        success: function()
        {
            //file exists
        }
    });

【讨论】:

    猜你喜欢
    • 2011-12-19
    • 1970-01-01
    • 2011-09-14
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多