1

私はSOとjQueryの初心者です。データベースから 3 つの異なる順序付けられていないリストにリンクが動的に作成されています。一番下の2つのリストのそれぞれから、一番上のリストの各リスト項目のアンカーに兄弟になる新しい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 に答える