2012-10-19 66 views
0

我試圖自己把它包起來,但遇到了一個小障礙。這是question的後續行動。基本上,我需要從類別.list和.combination的3個容器的鏈接末尾刪除「index.html」,然後將它們添加到適當的容器中。我無法讓自己的腦袋纏繞着如何讓所有的東西一起工作。我得到了一個成功的url變量警報,但無法讓它超出這個範圍。儘管追加作品完美。使用lastIndexOf將錨點附加到具有匹配錨點的容器

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

回答

0

試試這個,一個href是不是/index.html BTW

$(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); 

    }); 

Fiddle

+0

感謝您的答覆!幾乎在那裏,我應該更具體的唯一部分是我實際上需要在最後一個「/」後刪除任何東西。所以index.html可能是mypage.cfm。這就是爲什麼我正在嘗試lastIndexOf。對不起(新手 - geez)。 – dmod40

+0

我已經更新了我的答案,希望現在能夠正常工作 – henkieee

+0

感謝您的耐心等待。這似乎又打破了它。我認爲這可能是s.length,因爲s沒有在任何地方定義過,但將其改爲href或$(this).length仍然沒有。 – dmod40

相關問題