2

私はすべてのdelicious.comブックマークをループして、それらの周りにリンクをラップしたい...

ここに私のテストサイトがあります: 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 番目のリンクだけがリンクでラップされています... 他のリンクはそうではありません。

私は何を間違っていますか?

4

2 に答える 2

3

a href属性には引用符が必要です。

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

する必要があります

html += "<li><a href='"+m.link+"'>"+m.title+"</a></li>";
于 2012-06-22T10:27:07.533 に答える
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>

そのリンクを見ると、url は で終わり、タグ/を閉じています。<a>テキストは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);
于 2012-06-22T10:32:49.847 に答える