将javascript更改为操作具有相同类而不是id的所有链接
我正在使用下面的代码片段将id为onelink的链接更改为另一个链接(如果altlink有内容)将javascript更改为操作具有相同类而不是id的所有链接,javascript,jquery,Javascript,Jquery,我正在使用下面的代码片段将id为onelink的链接更改为另一个链接(如果altlink有内容) if ($("#onelink").length > 0) { if (altlink != '') { $("#onelink").attr('href', site_url + altlink); } } 它正在正确编辑的html是: 它把它变成: 它适用于单个id链接,但就我而言,现在我使用的是一个id,页面上有10多个链接 我假设这对单个链接有效,但事
if ($("#onelink").length > 0) {
if (altlink != '') {
$("#onelink").attr('href', site_url + altlink);
}
}
它正在正确编辑的html是:
它把它变成:
它适用于单个id链接,但就我而言,现在我使用的是一个id,页面上有10多个链接
我假设这对单个链接有效,但事实并非如此:
if ($(".onelink").length > 0) {
if (altlink != '') {
$(".onelink").attr('href', site_url + altlink);
}
}
它正在错误编辑的html文件:
它变成了:
http://www.website.comundefined 应该是http://www.website.com/testpage/
现在,对于多个链接,我会想:
$(".onelink").each(function(){
if ($(this).length > 0) {
if (altlink != '') {
$(this).attr('href', site_url + altlink);
}
}
});
但是,同样的问题如上所述。尝试检查altlink是否存在并且它不是空的:
if (altlink && altlink.length > 0) {
因此,您的完整代码将是:
$(".onelink").attr("href", function() {
if (altlink && altlink.length > 0) {
$(this).attr('href', site_url + altlink);
}
});
并确保包含jQuery,并将此代码放在$document.ready函数下
片段
网站地址=http://facebook.com/;
altlink=?search=praveen;
$function{
$.onelink.attrref,函数{
如果altlink&&altlink.length>0{
返回站点url+altlink;
}
};
};
.onelink{背景:ccf;}
altlink确实存在,我没有包括它,但你可以从我的帖子中看到,我提到过它对使用id的单个链接有效,但一旦我切换到类,它就会失败。altlink有问题。这就是问题所在。相信我们,我们知道。这与altlink无关,而是与它与班级的斗争有关。比较,您可以看到第一个运行正常,但第二个运行不正常。@Ryflex我的解决方案对您有用吗?我还加了一把小提琴始终检查JSFIDLE onload设置。如果您使用document.ready或诸如此类,请将设置更改为head而不是onload如果$this.length>0{do?@Tushar Ha.Nothing,该怎么办。