2012-06-22 20 views
2

我想循環通過所有我delicious.com書籤和包裹以防萬一他們一個鏈接...HREF內循環的javascript jquery的

這裏是我的測試網站: http://dev.thomasveit.com/json.html

$(document).ready(function(){    
     $.ajax({ 
      url: "http://feeds.delicious.com/v2/json/tommyholiday", 
      dataType: "jsonp", 
      success: function(data){ 
       var bookmarks = $.map(data, function(bookmark){ 
        return { 
         title: bookmark.d, 
         link: bookmark.u 
        } 
       });     

       var html = "<ul>", 
        m; 

       for (i=0; i<bookmarks.length; i++){ 
        m = bookmarks[i]; 

        html += "<li><a href="+m.link+">"+m.title+"</a></li>"; 
       } 
       html += "</ul>"; 

       $("#delicious").html(html); 

      }      
     }); 
}); 

有趣的是,只有第三鏈接正在被一個鏈接包裹...其他人沒有。

我在做什麼錯?

回答

3

a href屬性需要引號。

html += "<li><a href="+m.link+">"+m.title+"</a></li>"; 

應該

html += "<li><a href='"+m.link+"'>"+m.title+"</a></li>"; 
+0

aaaahh .....解決了這個問題!謝謝! –

+0

那麼你的鏈接存在問題。它不應該包含空格。或者我錯過了什麼? –

+1

@dystroy是的,但是當檢查時一定不要請。 http://www.w3.org/TR/html-markup/syntax.html#syntax-attr-unquoted – xdazz

0

你沒有引號「添加到href屬性

例如:

<li><a href=http://www.designtnt.com/500-free-photoshop-patterns-your-web-designs/>500+ Must-Have Free Photoshop Patterns for Your Web Designs</a></li> 

如果你看一下這個鏈接,它網址以/結尾,並關閉<a>標籤。 mes之後的a標記和最後的</a>被忽略。

在我看來,創建html標籤的最好方法是將DOM用於性能和錯誤。

var ul = document.createElement("ul"); 

// inside the for 
var li = document.createElement("li"); 
var a_tag = document.createElement("a"); 
a_tag.setAttribute("href", m.link); 
a_tag.appendChild(document.createTextNode(m.title)); 
li.appendChild(a_tag); 

// add the li 
ul.appendChild(li); 

// end for 
$("#delicious").html(ul);