0

私はこれを自分でまとめようとしていましたが、1つの小さな障害に遭遇しました. これは、この質問のフォローアップです。基本的に、クラス .list と .combination を持つ 3 つのコンテナーからのリンクの末尾から「index.html」を削除し、それらを適切なコンテナーに追加する必要があります。すべてを連携させる方法に頭を悩ませることはできません。url 変数の成功アラートを受け取りましたが、それ以上は機能しません。ただし、追加は完全に機能します。

<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>

予想される出力は次のとおりです。

 <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>
4

1 に答える 1

0

これを試してください。1つの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);

    });

フィドル

于 2012-10-19T13:21:20.833 に答える