Javascript:全选<a> except those in a certain class</a>

时间:2013-02-09 22:46:49

标签: javascript

我有一个代码,我从一个动画中选取了我的文档中所有<a>的动画。问题是我不想为所有这些设置动画,只是那些不在我的导航栏中的动画。

我如何制作它以便它不会动画/更改导航栏类的样式?

编辑:为了更清楚,我想从脚本中排除某个类中的任何<a>

示例:

<div class="navbar navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
        <ul class="nav">
          <li class="">
            ( Exclude ---> )<a href="./index.html">Home</a>
          </li>
          ...

代码:

var supports3DTransforms =  document.body.style['webkitPerspective'] !== undefined || document.body.style['MozPerspective'] !== undefined;
    function linkify( selector ) {
        if( supports3DTransforms ) {
            var nodes = document.querySelectorAll( selector );

            for( var i = 0, len = nodes.length; i < len; i++ ) {
                var node = nodes[i];

                if( !node.className || !node.className.match( /roll/g ) ) {
                    node.className += ' roll';
                    node.innerHTML = '<span data-title="'+ node.text +'">' + node.innerHTML + '</span>';
                }
            };
        }
    }

    linkify( 'a' );

2 个答案:

答案 0 :(得分:1)

for循环中:

var node = nodes[i],
    parent = node.parentNode,
    inFoo = false;

// loop through all parent nodes and search for the unwanted class
while(parent){
  if(parent.className && parent.className.indexOf('foo') > -1){
     inFoo = true;
     break;
  }                       
  parent = parent.parentNode;        
}

if(!inFoo) {
   // do your stuff
}

答案 1 :(得分:0)

这样的选择器应该可以工作:

a:not(.class_name)