Jquery 使用lastIndexOf将锚点附加到具有匹配锚点的容器
我想自己把它包起来,但遇到了一个小障碍。这是对此的后续行动。基本上,我需要从带有class.list和.composition的3个容器的链接末尾删除“index.html”,然后将它们添加到相应的容器中。我不知道如何使每件事都协调一致。我成功地收到了url变量的警报,但除此之外无法使其工作。不过,追加操作非常有效Jquery 使用lastIndexOf将锚点附加到具有匹配锚点的容器,jquery,Jquery,我想自己把它包起来,但遇到了一个小障碍。这是对此的后续行动。基本上,我需要从带有class.list和.composition的3个容器的链接末尾删除“index.html”,然后将它们添加到相应的容器中。我不知道如何使每件事都协调一致。我成功地收到了url变量的警报,但除此之外无法使其工作。不过,追加操作非常有效 <script>$(document).ready(function () { $('ul.list li a, ul.combination li a
<script>$(document).ready(function () {
$('ul.list li a, ul.combination li a').each(function(){
var url = $(this).attr('href');
var n = url.lastIndexOf('/');
url.substring(0, n != -1 ? n : s.length);
});
$('ul.list.combination li').each(function() {
var element = $('.list li a[href="' + $(this).find('a').attr('href')
+ '"]');
if (element.siblings('ul').length == 0) {
element.after('<ul />');
}
element.next('ul').append($(this));
});
});
</script>
</head>
<body>
<ul class="list">
<li><a href="http://www.mysite.com/index.html">My Site</a></li>
<li><a href="http://www.google.com/index.html">Google</a></li>
<li><a href="http://www.yahoo.com/index.html">Yahoo</a></li>
<li><a href="http://www.cnn.com/index.html">CNN</a></li>
<li><a href="http://www.espn.com/index.html">ESPN</a></li>
</ul>
<ul class="combination">
<li><a href="http://www.mysite.com/index.html">My Site</a></li>
<li><a href="http://www.google.comindex.html">Google again</a></li>
</ul>
<ul class="combination">
<li><a href="http://www.mysite.com/index.html">My Site Too</a></li>
<li><a href="http://www.yahoo.comindex.html">Yahoo Redux</a></li>
</ul>
$(文档).ready(函数(){
$('ul.list li a,ul.composition li a')。每个(函数(){
var url=$(this.attr('href');
var n=url.lastIndexOf('/');
子字符串(0,n!=-1?n:s.length);
});
$('ul.list.composition li')。每个(函数(){
var element=$('.list li a[href=“'+$(this).find('a').attr('href'))
+ '"]');
if(元素同级('ul')。长度==0){
元素后(“
”);
}
元素。next('ul')。追加($(this));
});
});
以下是预期输出:
<ul class="list">
<li><a href="http://www.mysite.com">My Site</a>
<ul><li><a href="http://www.mysite.com">My Site</a></li>
<li><a href="http://www.mysite.com">My Site Too</a></li></ul>
</li>
<li><a href="http://www.google.com">Google</a>
<ul><li><a href="http://www.google.com">Google again</a></li></ul>
</li>
<li><a href="http://www.yahoo.com">Yahoo</a>
<ul><li><a href="http://www.yahoo.com">Yahoo Redux</a></li></ul>
</li>
<li><a href="http://www.cnn.com">CNN</a></li>
<li><a href="http://www.espn.com">ESPN</a></li>
</ul>
<ul class="combination">
</ul>
<ul class="combination">
</ul>
-
-
-
试试这个,one href不是/index.html顺便说一句
$(function(){
$('#lists li a').each(function(i, val){
$(this).attr('href', function(i, href){
var n = href.lastIndexOf('/');
var subString = href.substring(0, n != -1 ? n : s.length);
return subString;
});
if($(this).parents('ul').hasClass('combination'))
{
var li = $(this).parent();
$('.list').append(li);
}
});
});
$('ul.list li a, ul.combination li a').each(function(){
var url = $(this).attr('href'),
n = url.lastIndexOf('/'),
subString = url.substring(0, n != -1 ? n : url.length);
$(this).attr('href', subString);
});
感谢您的回复!几乎在这里,我唯一应该更具体的部分是,我实际上需要删除最后一个“/”之后的任何内容。因此index.html可以是mypage.cfm。这就是我为什么要尝试lastIndexOf的原因。很抱歉(新手-天啊)。谢谢你的耐心。这个似乎又把它弄坏了。我想它可能是s.length,因为s在任何地方都没有定义,只是将其更改为href或$(此)。length仍然没有这样做。你能更准确地说,我的Fiddle版本似乎有什么问题吗。在您自己的代码部分,您忘记将当前href更改为子字符串。我已将该部分添加到我的代码块中。我没有关闭函数!现在效果很好。非常感谢!