2

a href が正確に一致する場合にのみ、img を含む「a タグ」をいくつか削除する必要があります。これは削除する必要があるコードです-

<a class="slideshow" href="?Action=thumbnail&Width=500&Height=500&algorithm=proportional" rel="lightbox[eventer]" onclick="myLightbox.start(this); return false;">
    <img src="?Action=thumbnail&Width=80&Height=80&algorithm=fill_proportional">
</a>

したがって、href が上記のものと等しい場合は、「a タグ」と「img」を dom から削除する必要があります。

======編集=======

href私は独自の CMS を使用しており、タグ内にタグを吐き出していますsrc。URL を囲むコードを実際に編集することはできず、少し厄介です。

4

3 に答える 3

7

すべてのブラウザで動作する次のようなコードを使用できます。

var links = document.getElementsByTagName("a"), item;
var urlBase = '?Action=thumbnail&Width=500&Height=500&algorithm=proportional';
var urlFull = window.location.href + urlBase;
for (var i = links.length - 1; i >= 0; i--) {
    item = links[i];
    if (item.href == urlFull || item.href == urlBase) {
        item.parentNode.removeChild(item);
    }
}

注: コードは逆の順序でリストをトラバースするため、アイテムが DOM から削除されてライブ ノード リストが変更されても、残りのトラバーサルには影響しません。

は通常、完全修飾 URL を返しますが、元のソース HTML にあるものと正確に一致しないためitem.href、完全修飾一致とソース HTML で期待されているものの両方に対してテストします。

于 2012-05-09T05:33:35.557 に答える
3

あなたが使用することができquerySelectorAll()ますremoveChild()

var url = '?Action=thumbnail&Width=500&Height=500&algorithm=proportional',
    as = document.querySelectorAll('a[href="'+url+'"]'),
    i, node;

for(i=as.length;i--;){
    node = as[i];
    node.parentNode.removeChild(node);
}

querySelectorAll のサポート

于 2012-05-09T05:32:49.200 に答える
1

私はジョセフの答えが好きですが、処理しないブラウザで作業する必要がある場合はquerySelectorAll()、次のようなものを使用できます。

var url = '?Action=thumbnail&Width=500&Height=500&algorithm=proportional',
    elems = document.getElementsByTagName( 'a' ),
    i = 0;
for ( ; i < elems.length; i++ ) {
    if ( elems[i].href && elems[i].href.indexOf( url ) !== -1 ) {
        elems[i].parentNode.removeChild( elems[i] );
    }
}
于 2012-05-09T05:43:14.343 に答える