href里面循环javascript jquery

时间:2012-06-22 10:21:14

标签: javascript jquery

我想通过我所有的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);

            }                       
        });
});

有趣的是,只有第三个链接被链接包裹......其他链接没有。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

a href属性需要引用。

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

应该是

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

答案 1 :(得分: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>标记。该文字随后出现在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);