1

我需要使用特定的删除某些图像src

http://ukn.cs-mtc.com/wp-content/plugins/download-monitor/page-addon/thumbnail.gif

<img>有没有办法用 JavaScript删除整个标签?

4

3 回答 3

4

你使用 jQuery 吗?如果是这样,

$('img[src="http://ukn.cs-mtc.com/wp-content/plugins/download-monitor/page-addon/thumbnail.gif"]').remove();应该管用。

否则...

var img = document.getElementsByTagName('img');
for(var i=0,i<img.length;i++) {
if(img[i].src == 'http://ukn.cs-mtc.com/wp-content/plugins/download-monitor/page-addon/thumbnail.gif') {
img[i].parentNode.removeChild(img[i]);
}
}
于 2012-09-30T15:31:58.777 回答
4

我有一些空闲时间(以及编写一些 JavaScript 的奇怪冲动......),所以我想我会提供这种功能性方法:

function removeNeighbour(el, elType) {
    if (!el) {
        return false;
    }
    else if (el.nextElementSibling) {
        var nxt = el.nextElementSibling;
    }
    else {
        var nxt = el.nextSibling;
        while (nxt.nodeType !== 1 && nxt.nextSibling) {
            nxt = nxt.nextSibling;
        }

    }
    if (elType && nxt.tagName.toLowerCase() == elType.toLowerCase()) {
        nxt.parentNode.removeChild(nxt);
    }
    else if (!elType) {
        nxt.parentNode.removeChild(nxt);
    }
}

function clearElsWithAttrEquals(el, attr, val, andNeighbour, neighbourType) {
    if (!el || !attr || !val) {
        return false;
    }
    else if (document.querySelectorAll) {
        var matchingElems = document.querySelectorAll(el + '[' + attr + '="' + val + '"]'),
            neighbourType = neighbourType || '';
        for (var i = matchingElems.length - 1; i >= 0; i--) {
            if (andNeighbour === true) {
                removeNeighbour(matchingElems[i], neighbourType);
            }
            matchingElems[i].parentNode.removeChild(matchingElems[i]);
        }
    }
    else {
        var matchingElems = document.getElementsByTagName(el),
            len = (matchingElems.length - 1);
        for (var i = len; i >= 0; i--) {
            if (matchingElems[i][attr] == val) {
                matchingElems[i].parentNode.removeChild(matchingElems[i]);
            }
        }
    }
}

clearElsWithAttrEquals('img', 'src', 'http://ukn.cs-mtc.com/wp-content/plugins/download-monitor/page-addon/thumbnail.gif', true, 'p');​​​

JS 小提琴演示

快速指南(也是我可能编写的唯一文档)clearElsWithAttrEquals()功能:

clearElsWithAttrEquals(el, attr, val[, andNeighbour[, neighbourType]]);

  1. el: ( string ) 标识元素类型 ('img','p','span'...)。
  2. attr: ( string ) 标识您要搜索的属性('id'、'src' 等...)
  3. val: ( string ) 仅当值完全等于字符串时才会匹配
  4. andNeighbour: ( Boolean , optional ) 你也想删除相邻的元素吗?通过true(如果是)或false(如果不是)。
  5. neighbourType: ( string , optional ) 仅当它是此元素类型('div'、'hr'、'span' 等)时才删除邻居;如果省略,则无论其类型如何,都将删除下一个兄弟元素。

参考:

于 2012-09-30T19:02:21.907 回答
1

这可以使用jQuery轻松完成:

$('img[src="<path>"]').remove();
于 2012-09-30T15:30:07.670 回答