[英]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.