5

現在、次のようなコードがあります。

$('a.guide-item[href="/"]').remove();
$('*[href="/"]').attr('href','/feed/subscriptions/u');

ファイルサイズを小さくする必要がありますが、「バニラ」JavaScriptでコードを複製する方法がわかりません。助けてください!

4

1 に答える 1

6

IE6/7 をサポートしていないため、非常にシンプルです。

var els = document.querySelectorAll('a.guide-item[href="/"]');

for (var i = 0; i < els.length; i++) {
    if (els[i].parentNode)
        els[i].parentNode.removeChild(els[i]);
}

els = document.querySelectorAll('*[href="/"]');

for (i = 0; i < els.length; i++) {
    els[i].setAttribute('href','/feed/subscriptions/u');
}

IE6/7 をサポートする必要がある場合でも、それは非常に単純ですが、クラスごとに要素を選択するメソッド、または少なくともクラスをテストするメソッドがあると便利です。

これらの実装を Web 上で見つけるのは難しくありません。


これは、古い IE をサポートする簡単な実装です。

var els = document.links,
    i = els.length;

while (i--) {
    if (els[i].getAttribute("href") !== "/")
        continue;

    if (els[i].className.indexOf("guide-item") !== -1) {
        els[i].parentNode.removeChild(els[i]);
    } else {
        els[i].setAttribute('href','/feed/subscriptions/u');
    }
}

サブパターンとして一致する.className他のクラスがないことを前提としています。"guide-item"

于 2012-12-14T22:49:18.593 に答える