2013-10-29 84 views
0

如何确定节点兄弟是否是图像?Javascript-如果节点兄弟是图像

function linkify() { 
if(supports3DTransforms && remove == 0) { 
    var selector = '.linkroll a'; 
    var nodes = document.querySelectorAll(selector); 

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

     var sibling = node.nextSibling; // Dont know if this is right 

     // I want to add if sibling is not an image... 
     if(!node.className || !node.className.match(/roll/g)){ 

      node.className += ' roll'; 
      node.innerHTML = '<span data-title="'+ node.text +'">' + node.innerHTML + '</span>'; 

     } 
    }; 
} 
} 

换句话说,我试图运行与班上linkroll一个专区内的所有超链接这个功能,但我不希望它适用于任何超链接的图像。

回答

0

您可以使用DOM元素的nodeName属性。

if(sibling.nodeName != "IMG") 
// do something 
0

使用jQuery

function linkify() { 
    if (supports3DTransforms && remove == 0) { 
     var selector = '.linkroll a'; 
     $(selector).filter(function() { 
      var next = this.nextSibling; 
      console.log(this, $(this).next().is('img')) 
      return !$(this).next().is('img') 
     }).addClass('roll').html(function() { 
      return '<span data-title="' + $(this).text() + '">' + this.innerHTML + '</span>' 
     }) 
    } 
} 

演示:如果Fiddle

0

非常简单的解决办法是使用这个下面的代码乌尔准备使用jquery ..

if($("a:not(:has(img))")){ 
    // do some thing here 
    }