我使用背景颜色设置<a>的样式...但是当链接标记中包含<img>时,背景颜色在图像的下方/附近/任意位置可见。

因此,我想设置包含图像的链接的样式(背景:无),但由于css4父元素尚未在任何浏览器中显示(

最佳答案

使用jquery,您可以执行以下操作:

$('a:has(img)').css('background-color', 'transparent');


使用JavaScript,我会尝试:

// Check not only immediate children but all descendants recursively
function hasImgChild(oElement) {
    if (oElement.tagName == 'img') { return true; }
    for (var n=0; n<oElement.childNodes.length; n++) {
        if (hasImgChild(oElements.childNodes[n])) { return true; }
    }
    return false;
}

// Get all <a> tag dom references
var aLinks = document.getElementsByTagName('a');

// Loop through all <a> tags and if any of them
// Have <img> descendants, set background-color css property to 'transparent'
for (var n=0; n<aLinks.length; n++) {
    if (hasImgChild(aLinks[n])) {
        aLinks[n].style.backgroundColor = 'transparent';
    }
}

09-26 07:44