現在、次のようなコードがあります。
$('a.guide-item[href="/"]').remove();
$('*[href="/"]').attr('href','/feed/subscriptions/u');
ファイルサイズを小さくする必要がありますが、「バニラ」JavaScriptでコードを複製する方法がわかりません。助けてください!
現在、次のようなコードがあります。
$('a.guide-item[href="/"]').remove();
$('*[href="/"]').attr('href','/feed/subscriptions/u');
ファイルサイズを小さくする必要がありますが、「バニラ」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 をサポートする必要がある場合でも、それは非常に単純ですが、クラスごとに要素を選択するメソッド、または少なくともクラスをテストするメソッドがあると便利です。
これらの実装を 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"