Javascript jQuery/JS-如何排除<;a>;在特定条件下使用特定的href?

Javascript jQuery/JS-如何排除<;a>;在特定条件下使用特定的href?,javascript,jquery,preloader,Javascript,Jquery,Preloader,我试图根据它们的href值,将特定的排除在if语句中。更具体地说,我在单击任何时显示一个预加载程序div,除了触发javascript或包含的部分。 这使我的用户在等待页面加载时看到一个漂亮的屏幕 我写了一些小东西: $('a').click(function() { var href = $(this).attr('href'); //my conditions if ((href != '#') || (href != 'javascript:void(0);')) {

我试图根据它们的
href
值,将特定的
排除在if语句中。更具体地说,我在单击任何
时显示一个预加载程序div,除了触发
javascript
或包含
的部分。 这使我的用户在等待页面加载时看到一个漂亮的屏幕

我写了一些小东西:

$('a').click(function() {
  var href = $(this).attr('href');

  //my conditions
  if ((href != '#') || (href != 'javascript:void(0);')) {
    $('#preloader').fadeIn("fast");
  }
});

//Showing preloader
$(window).load(function() {
  $('#preloader').fadeOut("slow");
});
我的语句不包括包含
#
的链接,但适用于带有
javascript:void(0)的链接,而不是。这是我的问题。

我做错了什么?语句或值中是否有错误?

我可以想到两种立即解决给定代码问题的方法:

  • 你的条件不正确
    if((href!='#')|(href!='javascript:void(0);)
    应该是
    if(href!='#'&&href!='javascript:void(0);)

  • 最好从查询本身中排除不相关的元素:

  • $('a')。不是('[href=“#”]”)。不是('[href=“javascript:void(0);”])。单击(函数(){
    $(“#预加载程序”).fadeIn(“快速”);
    });
    

    请参阅jQuery。

    这个答案可能会对某人有所帮助。。还有另一种检查方法

    if($(this).is(':not([href^="#"]):not([href^="javascript:"])')){
       $('#preloader').fadeIn("fast");
    }
    
    $('a')。在('click')上,函数(e){
    e、 预防默认值();
    如果($(this).is(':not([href^=“#“]):not([href^=“javascript:”))){
    警惕(“良好”);
    }
    });
    
    
    



    我不同意你的第一句话。它不应该是逻辑的,因为a href包含
    #
    javascript:void(0)。如果它同时包含这两个元素,则表示有人做了不正确的事情。此外,OP还要求将其用于或。然而,你建议使用
    。而不是
    ,这绝对是OP想要的!我尝试并发展了第二种方法。非常感谢您的帮助。@Seth,条件是否定的,因此
    &
    是您想要的:其
    href
    属性不是
    #
    且不是
    javascript:void(0):您能为示例提供一些标记吗?乍一看,您的处理程序应该工作正常。也许你的主播有一个打字错误href@Seth谢谢你的回复,我已经修复了它,实现了下面的答案。祝你有美好的一天。