2013-10-29 61 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 
    }