如何在没有jQuery的情况下使这段代码工作



目前我有一个看起来像这样的代码:

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

我需要使文件大小更小,但我不知道如何在"vanilla"javascript中复制代码。请帮忙!

不支持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,它仍然非常简单,但有一个按类选择元素的方法会很有帮助,或者至少测试一个类。

在网络上不难找到这些实现。


下面是一个支持旧版 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"将作为子模式进行匹配。

最新更新