1

我是 SO 新手和 jQuery 新手。我有从数据库动态创建到 3 个不同的无序列表的链接。我正在尝试将底部两个列表中的每个列表中的列表项附加到新 ul 标记内的顶部列表中,该标记将是顶部列表中每个列表项的锚点的兄弟。我需要通过匹配 href 属性来做到这一点。我开始使用下面的脚本来查看是否可以排除 url 的最后一部分,以便更容易匹配 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>
4

1 回答 1

0

像这样的小提琴

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));
})
于 2012-10-19T01:41:51.650 回答