更改javascript以操作具有相同类的所有链接而不是id

时间:2015-11-30 06:47:09

标签: javascript jquery

我现在正在使用以下代码snippit将#onelink id的链接更改为其他链接(如果altlink有内容)

if ($("#onelink").length > 0) {
    if (altlink != '') {
        $("#onelink").attr('href', site_url + altlink);
    }
}

正确编辑的html是:

<a href="http://www.website.com/default/" id="onelink">Update</a>

它变成了:

<a href="http://www.website.com/testpage/" id="onelink">Update</a>

它适用于单个ID链接,但在我的情况下,我现在使用的是ID,页面上有10个以上的链接。

我认为这适用于单个链接但不是:

if ($(".onelink").length > 0) {
    if (altlink != '') {
        $(".onelink").attr('href', site_url + altlink);
    }
}

正在编辑的HTML 不正确

<a class="onelink otherclass otherclass other class" href="http://www.website.com/default/"><span class="button-text">Update</span></a>

它变成了:

<a class="onelink otherclass otherclass other class" href="http://www.website.comundefined"><span class="button-text">Update</span></a>

http://www.website.comundefined应该是http://www.website.com/testpage/

现在我想到了多个链接:

$(".onelink").each(function(){
    if ($(this).length > 0) {
        if (altlink != '') {
            $(this).attr('href', site_url + altlink);
        }
    }
});

但同样的问题也是如上所述。

1 个答案:

答案 0 :(得分:1)

尝试检查altlink是否存在且不为空:

if (altlink && altlink.length > 0) {

所以你的完整代码将是:

$(".onelink").attr("href", function() {
    if (altlink && altlink.length > 0) {
        $(this).attr('href', site_url + altlink);
    }
});

确保包含jQuery并将此代码放在$(document).ready()函数。

<强>段

&#13;
&#13;
site_url = "http://facebook.com/";
altlink = "?search=praveen";
$(function () {
  $(".onelink").attr("href", function(){
    if (altlink && altlink.length > 0) {
      return site_url + altlink;
    }
  });
});
&#13;
.onelink {background: #ccf;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div><a href="http://www.google.com/">Non Alt Link</a></div>
<div><a href="http://www.google.com/" class="onelink">Alt Link</a></div>
<div><a href="http://www.google.com/">Non Alt Link</a></div>
<div><a href="http://www.google.com/" class="onelink">Alt Link</a></div>
<div><a href="http://www.google.com/">Non Alt Link</a></div>
<div><a href="http://www.google.com/" class="onelink">Alt Link</a></div>
<div><a href="http://www.google.com/">Non Alt Link</a></div>
<div><a href="http://www.google.com/" class="onelink">Alt Link</a></div>
<div><a href="http://www.google.com/">Non Alt Link</a></div>
<div><a href="http://www.google.com/" class="onelink">Alt Link</a></div>
&#13;
&#13;
&#13;