用Javascript条件替换

用Javascript条件替换,javascript,css,Javascript,Css,我正在使用此javascript将所有链接替换为注册消息: <script> function replaceLinks() { var links = document.querySelectorAll('.restore a:link'); for (var i = 0; i < links.length; i++) { links[i].innerHTML = 'DOWNLOAD register here.'; links

我正在使用此javascript将所有链接替换为注册消息:

<script>
function replaceLinks() {
    var links = document.querySelectorAll('.restore a:link');
    for (var i = 0; i < links.length; i++) {
        links[i].innerHTML = 'DOWNLOAD register here.';
        links[i].href = 'register.php';
    }
}
</script>

函数replaceLinks(){
var links=document.querySelectorAll('.restore a:link');
对于(变量i=0;i
问题:

它还将替换所有缩略图(链接到其全尺寸图像)。我不能将特定的CSS选择器仅应用于链接,因为我使用的是vBulletin,它会将其应用于文章内容中的链接和图像

有人知道我如何……


禁止此Javascript应用于以.jpg、.gif等结尾的链接——因此它只重写链接,而不重写链接到其全尺寸图像的缩略图

您可以使用simle regexp检查link href,只有在测试为false时才能继续:

function replaceLinks() {
    var links = document.querySelectorAll('.restore a:link');
    for (var i = 0; i < links.length; i++) {
        if (/\.(png|jpe?g)$/.test(links[i].href)) continue;
        links[i].innerHTML = 'DOWNLOAD register here.';
        links[i].href = 'register.php';
    }
}
函数replaceLinks(){
var links=document.querySelectorAll('.restore a:link');
对于(变量i=0;i
您可以使用simle regexp检查link href,只有在测试为false时才能继续:

function replaceLinks() {
    var links = document.querySelectorAll('.restore a:link');
    for (var i = 0; i < links.length; i++) {
        if (/\.(png|jpe?g)$/.test(links[i].href)) continue;
        links[i].innerHTML = 'DOWNLOAD register here.';
        links[i].href = 'register.php';
    }
}
函数replaceLinks(){
var links=document.querySelectorAll('.restore a:link');
对于(变量i=0;i
更改此行
var links=document.queryselectoral('.restore a:link')至:

var links = document.querySelectorAll('.restore a:link:not([href$=".jpg"]):not([href$=".jpeg"]):not([href$=".png"])');

更改此行
var links=document.querySelectorAll('.restore a:link')至:

var links = document.querySelectorAll('.restore a:link:not([href$=".jpg"]):not([href$=".jpeg"]):not([href$=".png"])');

这太容易避免了(只是看到代码,或者停用javascript),我建议(如果可以的话)安装一个插件或者让它成为你自己(可能只是一个补丁)

事实上,我认为您可以在中禁用匿名下载权限,而无需安装任何东西。 但是,如果您想使用JavaScript,至少要添加一些样式(那么停用JavaScript将不会显示链接):


.restore a:link:not([href$=”.jpg“]):not([href$=”.jpeg“]):not([href$=”.png“]){display:none}
函数replaceLinks(){
var links=document.querySelectorAll('.restore a:link:not([href$=”.jpg“]):not([href$=”.jpg“]):not([href$=”.jpg“]):not([href$=”.png“]);
对于(变量i=0;i
这太容易避免了(只需查看代码或停用javascript),我建议(如果可以的话)安装一个插件或让它成为你自己(可能只是一个补丁)

事实上,我认为您可以在中禁用匿名下载权限,而无需安装任何东西。 但是,如果您想使用JavaScript,至少要添加一些样式(那么停用JavaScript将不会显示链接):


.restore a:link:not([href$=”.jpg“]):not([href$=”.jpeg“]):not([href$=”.png“]){display:none}
函数replaceLinks(){
var links=document.querySelectorAll('.restore a:link:not([href$=”.jpg“]):not([href$=”.jpg“]):not([href$=”.jpg“]):not([href$=”.png“]);
对于(变量i=0;i
如果有帮助,这就是图片用于链接的内容/css
@AmitJoki也检查我的答案:)如果有帮助,这就是图片用于链接的内容/css
@AmitJoki也检查我的答案:)我现在真的,疯狂地爱着你。非常感谢。是的,它工作得很好。你是个天才。:)很高兴它帮助了你。我现在真的疯狂地爱着你。非常感谢。是的,它工作得很好。你是个天才。很高兴它帮助了你。