将类从列表追加到URL

时间:2015-09-24 10:39:53

标签: javascript jquery

我有一个无序列表。我想从URL后面的每个元素追加该类。但是我该怎么做呢?

这是我的代码:

$( "li" ).each(function( index ) {      
  var newClass = $(this).attr('class');         
    console.log(newClass);    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul class="dropdown-menu-sub AAA ">
    <li class="c76"><a href="url1/">url1</a></li>
    <li class="c77"><a href="url2/">url2</a></li>
    <li class="c78"><a href="url3/">url3</a></li>
</ul>

这就是我想要的:

  <ul class="dropdown-menu-sub AAA ">
        <li class="c76"><a href="url1/#c76">url1</a></li>
        <li class="c77"><a href="url2/#c77">url2</a></li>
        <li class="c78"><a href="url3/#c78">url3</a></li>
    </ul>

Fiddle

1 个答案:

答案 0 :(得分:3)

您可以使用.attr()函数更新锚点的href

此处在示例中,我使用了重载的.attr( attributeName, function),它将href属性设置为函数返回的值。

$(function() {
  $("li a").attr('href', function(_, href) {
    var newClass = $(this).closest('li').attr('class');
    return href +'#'+ newClass;
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul class="dropdown-menu-sub AAA ">
  <li class="c76"><a href="url1/">url1</a>
  </li>
  <li class="c77"><a href="url2/">url2</a>
  </li>
  <li class="c78"><a href="url3/">url3</a>
  </li>
</ul>