Javascript 我们如何修改;href";使用jquery计数器?
我有一个包含一些链接的网页Javascript 我们如何修改;href";使用jquery计数器?,javascript,jquery,Javascript,Jquery,我有一个包含一些链接的网页 <div class="accordion-list"> <ul class="accordion"> <li class="accordion-item"> <a href="#" class="accordion-link">Heading 1</a> <ul class="sub-list"> <li><
<div class="accordion-list">
<ul class="accordion">
<li class="accordion-item">
<a href="#" class="accordion-link">Heading 1</a>
<ul class="sub-list">
<li><a href="xyz.com">Registrations</a></li>
<li><a href="xyz.com" >Contacts</a></li>
<li><a href="xyz.com" >Mortgages</a></li>
</ul>
</li>
<li class="accordion-item">
<a href="#" class="accordion-link">Heading 2</a>
<ul class="sub-list">
<li><a href="abc.com">Registrations</a></li>
<li><a href="abc.com" >Contacts</a></li>
<li><a href="abc.com" >Mortgages</a></li>
</ul>
</li>
</ul>
</div>
有人能告诉我如何获得所需的输出。试试这个:
var num = 0;
$(".sub-list a").each(function() {
var _href = $(this).attr("href");
$(this).attr("href", _href + "#item"+ ++num);
if (num == 3){
num = 0;
}
});
这基本上会在每个
之外创建一个变量,然后对于每个链接,它都会上升1位。当它到达3
时,它将重置并返回到0
试试这个:
var num = 0;
$(".sub-list a").each(function() {
var _href = $(this).attr("href");
$(this).attr("href", _href + "#item"+ ++num);
if (num == 3){
num = 0;
}
});
这基本上会在每个
之外创建一个变量,然后对于每个链接,它都会上升1位。当它到达3
时,它将重置并返回到0
代码笔示例:
(您可以通过js控制台查看更新的href)代码笔上的示例:
(您可以通过js控制台查看更新的href)jQuery。每个还将索引传递给回调方法
$(".sub-list a").each(function(i) {
var _href = $(this).attr("href");
$(this).attr("href", _href + '#item' + (i+1) ); // i starts from 0
});
这将使用更新所有href
<li><a href="xyz.com#item1">Registrations</a></li>
<li><a href="xyz.com#item2" >Contacts</a></li>
<li><a href="xyz.com#item3" >Mortgages</a></li>
<li><a href="abc.com#item4">Registrations</a></li>
<li><a href="abc.com#item5" >Contacts</a></li>
<li><a href="abc.com#item6" >Mortgages</a></li>
但这不是你所期望的。您必须使用选择器,该选择器将首先输入所有href,然后再输入第二个href。试试看。jQuery。每个还将索引传递给回调方法
$(".sub-list a").each(function(i) {
var _href = $(this).attr("href");
$(this).attr("href", _href + '#item' + (i+1) ); // i starts from 0
});
这将使用更新所有href
<li><a href="xyz.com#item1">Registrations</a></li>
<li><a href="xyz.com#item2" >Contacts</a></li>
<li><a href="xyz.com#item3" >Mortgages</a></li>
<li><a href="abc.com#item4">Registrations</a></li>
<li><a href="abc.com#item5" >Contacts</a></li>
<li><a href="abc.com#item6" >Mortgages</a></li>
但这不是你所期望的。您必须使用选择器,该选择器将首先输入所有href,然后再输入第二个href。试试看。使用
$(".sub-list").find("a").each(function(){
$(this).attr("href",$(this).attr("href")+"item"+($(this).parent().index()+1));
});
使用
请试试这个
$(".sub-list").each(function(index, element){
$(element).find('li a').each(function(i, element){
var href_val = $(this).attr('href');
$(this).attr('href', href_val+"#item"+i);
});
});
请试试这个
$(".sub-list").each(function(index, element){
$(element).find('li a').each(function(i, element){
var href_val = $(this).attr('href');
$(this).attr('href', href_val+"#item"+i);
});
});
列表计数未知。对于手风琴项目,它可能会更多,也可能不同。我们不能检查num==3,因为它对于所有手风琴项目都不同。请查看较新的小提琴。我正在编辑这篇文章@Manojlist计数未知。手风琴项目可能会有更多不同。我们无法检查num==3,因为所有手风琴项目的计数都不同。请查看较新的小提琴。我正在编辑这篇文章@ManojI故意将每个人的内心留给OP,这样他就可以尝试找到正确的方法。但你毁了它+不管怎样,这打印出“01”、“11”、“21”。我故意把每个内部都留给OP,以便他能找到正确的方法。但你毁了它+1。这将打印出'01'、'11'、'21.$(This).attr('href',href_val+“#item”+(i+1));感谢$(this.attr('href',href_val+“#item”+(i+1));现在可以用了谢谢