繁体   English   中英

Javascript-如果节点兄弟是图像

[英]Javascript- If node sibling is an image

如何确定节点兄弟是否为映像?

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类的div中的所有超链接上运行此功能,但是我不希望它应用于任何超链接图像。

您可以使用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>'
        })
    }
}

演示: 小提琴

如果您准备使用jquery,则非常简单的解决方案是使用以下代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM