Javascript-如果节点同级是映像

Javascript-如果节点同级是映像,javascript,jquery,html,Javascript,Jquery,Html,如何确定节点同级是否为映像 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 =

如何确定节点同级是否为映像

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>';

        }
    };
}
}
函数linkify(){
if(supports3DTransforms&&remove==0){
变量选择器='.linkroll a';
var节点=document.querySelectorAll(选择器);
对于(var i=0,len=nodes.length;i

换句话说,我试图在一个div中类为
linkroll
的所有超链接上运行此函数,但我不希望它应用于任何超链接图像。

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

if(sibling.nodeName != "IMG")
// do something
使用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>'
        })
    }
}
函数linkify(){
if(supports3DTransforms&&remove==0){
变量选择器='.linkroll a';
$(选择器).过滤器(函数(){
var next=this.nextSibling;
log(this,$(this).next().is('img'))
return!$(this.next().is('img'))
}).addClass('roll').html(函数(){
返回“”+this.innerHTML+“”
})
}
}

演示:

如果您准备好使用jquery,非常简单的解决方案就是使用下面的代码

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