Jquery 如何忽略具有特定CSS类的HTML组件

Jquery 如何忽略具有特定CSS类的HTML组件,jquery,Jquery,我在页面中有很多链接,但很少有链接附加了一些特定的css类。我想避免那些连接了.noclass的链接。下面的代码解决了我的问题 <a href="#" class="noclass">Link with No class1</a><br/> <a href="#" class="noclass">Link with No class2</a><br/> <a href="#" >Link without No c

我在页面中有很多链接,但很少有链接附加了一些特定的css类。我想避免那些连接了.noclass的链接。下面的代码解决了我的问题

<a href="#" class="noclass">Link with No class1</a><br/>
<a href="#" class="noclass">Link with No class2</a><br/>
<a href="#" >Link without No class</a><br/><br/>

<div id="footer_column6">
  <a href="#" class="noclass">Link with No class</a><br/>
  <a href="#" class="">Link without No class</a><br/>
  <a href="#" class="">Link without No class</a>
</div>
当场景有点不同时,比如我想忽略css class.noclass中的任何内容,那么上面的代码就不起作用了

假设在div中有几个链接,其中没有类被附加到div,我不想在那些没有类附加的div中迭代链接

所以,如果noclass直接与链接连接,或者可能是noclass,则noclass可能与div或span等父类连接。在这种情况下,如果链接的父级没有附加类,我不想迭代链接。那么,请告诉我在jquery代码上面需要添加哪些小修改


感谢

我修改了以前的代码,我意识到有一个逻辑缺陷,也不喜欢它依赖于添加一个额外的外部div来工作。此版本首先选择所有链接,然后从中选择。每个链接都将测试该链接是否为.noclass或是否具有.noclass的祖先:

$(document).ready(function() {
    var hyperLink = $("a");
    $.each(hyperLink, function(index, value) {
        if($(this).hasClass('noclass') || $(this).parents('.noclass').length) {
        return;
      }
      var href = $(value).attr("href");
      //Test code to update the back ground
      $(value).css("background-color", "red");
      $(value).attr("href", "/" + countrycode + (href == '/' ? '' : href));
      href = $(value).attr("href");
    });
});
这是更健壮的,因为它还可以处理页面根的链接,以及任何类型的包装器元素(div、span、section、article等)


这里有一个例子(注意,我必须注释掉countrycode行以使小提琴工作,因为countrycode没有定义)。

我对问题/问题有点困惑,看起来好像缺少一些代码。什么是
countrycode
?假设您正确定义了
countrycode
,代码似乎工作正常:他说下面的代码解决了他的问题。。。我也很困惑…我猜你不想在div容器中选择链接?是否要跳过最后两个链接?如果可能,请在代码中添加一个JSFIDLE链接。我将测试并让您知道。谢谢。我认为OP实际上想要跳过div容器内的链接,在某些情况下…@sinisake这就是代码所做的,它只选择div内没有.noclass的链接,或者也没有.noclass的跨度。除非我弄错了,基本上他要求的是一种方法来选择所有链接,但能够通过添加.noclass来排除链接。noclass要么添加到链接本身,要么添加到包装器。抱歉,我测试了上面的内容,但它在这里不起作用是jsfiddle version@Thomas,抱歉,我意识到我原来的逻辑中有一个缺陷,请用Fiddle尝试修改后的版本。