2012-10-19 26 views
1

我是新来的SO和jQuery新手。我有从数据库动态创建的链接到3个不同的无序列表。我试图将列表项从底部的两个列表中的每一个列表项添加到新的ul标签内的顶部列表中,这将成为顶部列表中每个列表项目的锚点的兄弟。我需要通过匹配href属性来做到这一点。我开始使用下面的脚本来查看是否可以排除网址的最后部分,以便匹配href属性更容易。任何帮助将不胜感激。将锚附加到包含具有相同href属性的锚的父代

<script>$(document).ready(function() { 
    var href = $('ul.list li:nth-child(1) a').attr("href"); 
    var n = href.lastIndexOf('/'); 
    alert(href.substring(0, n != -1 ? n : s.length)); 
}); 
</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">Google</a></li> 
    <li><a href="http://www.yahoo.com">Yahoo</a></li> 
    <li><a href="http://www.cnn.com">CNN</a></li> 
    <li><a href="http://www.espn.com">ESPN</a></li> 
    <li><a href="http://www.tsys.com">TSYS</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.com">To Index Page</a></li> 
    </ul> 
    <ul class="combination2"> 
    <li><a href="http://www.mysite.com/index.html">My Site Too</a></li> 
    <li><a href="http://www.yahoo.com">Yahoo Redux</a></li> 
    </ul> 
</body> 
+2

请后从上面输入的HTML输出预期。 – Tariqulazam

回答

0

像这样的事情fiddle

HTML

<ul class="list"> 
    <li><a href="http://www.mysite.com/index.html">My Site</a></li> 
    <li><a href="http://www.google.com">Google</a></li> 
    <li><a href="http://www.yahoo.com">Yahoo</a></li> 
    <li><a href="http://www.cnn.com">CNN</a></li> 
    <li><a href="http://www.espn.com">ESPN</a></li> 
    <li><a href="http://www.tsys.com">TSYS</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.com">To Index Page</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.com">Yahoo Redux</a></li> 
</ul> 

的Javascript

$('ul.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)); 
}) 
+0

完美!感谢您及时的回复。 – dmod40