如何确定节点兄弟是否是图像?
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中的所有超链接上运行此函数,但我不希望它适用于任何超链接图像。
答案 0 :(得分:0)
您可以使用DOM元素的nodeName
属性。
if(sibling.nodeName != "IMG")
// do something
答案 1 :(得分: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
答案 2 :(得分:0)
非常简单的解决方案是使用以下代码,如果你准备好使用jquery ..
if($("a:not(:has(img))")){
// do some thing here
}