генерация DOM внутри тега div из javascript

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть эта функция javascript:

 jQuery(document).ready(function() {

            FB.api('/me/friends', function(response) {
                        if(response.data) {
                            $.each(response.data,function(index,friend) {
                                $("#fb_friends").append("<div style="width:150px;float:left;font-size:11px;color:White;">");
                                $("#fb_friends").append("<input type="checkbox" name="friends" value="1244524" />");
                                $("#fb_friends").append("<img src="http://graph.facebook.com/'   friend.id   '/picture" alt="Picture" style="width:24px">");
                                $("#fb_friends").append(friend.name);
                                //alert(friend.name   ' has id:'   friend.id);
                                $("#fb_friends").append("</div>");
                            });
                        } else {
                            alert("Error!");
                        }
            });

    });
  

У меня также есть это в моем html:

 <div id="fb_friends" style="height:280px;overflow:scroll;" >


</div>
  

Я хочу вызвать эту функцию getFriends, чтобы она заполнила HTML-код внутри этого fb_friends div, который у меня есть. Как мне это сделать?

ОБНОВЛЕНО приведенный выше код не работает

Комментарии:

1. Эта строка "<img src="http://graph.facebook.com/' friend.id '/picture" alt="Picture" style="width:24px">" работает? Для меня это выглядит так, как будто вы печатаете «friend.id «вместо идентификатора. Попробуйте заменить одинарные кавычки двойными.

Ответ №1:

Я предполагаю, что вы используете jQuery, основываясь на наличии «$.each».

Попробуйте это внутри вашего цикла «each»:

 $("#fb_friends").append("{your html content or some DOM objects}")
  

Комментарии:

1. итак, я предполагаю, что мне не нужна функция тогда?

2. Я бы посмотрел на ваш код, но из того, что вы опубликовали, я не вижу причин для его использования … кроме того, если вы вызываете его после загрузки DOM и ссылаетесь на имя функции в событии загрузки.

Ответ №2:

Вы должны использовать DOM DocumentFragments вместо document.write. Это более производительно.

Вот интересная статья об этом: http://ejohn.org/blog/dom-documentfragments /

Ответ №3:

Если вы используете jQuery: $('#fb_friends').html('your stuff');

Комментарии:

1. Если он / она использует .html, я думаю, это заменит все, что есть в #fb_friends с каждой итерацией… .append Я думаю, что здесь было бы лучшим вариантом.

Ответ №4:

Вы используете jQuery, верно?

  $.each(response.data,function(index,friend) {
        html = "<div [...]more html code[...] "  friend.id   "[...]";
        $("fb_friends").append(html);
 });