我有一个无序列表。我想从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>
答案 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>