Написание HTML для строки значений с использованием JavaScript и JQuery?

0

Я хочу, чтобы страница html отображалась как:

<div class='container'>
  <div class='domain-list0'>Hello</div>
  <div class='domain-list1'>World</div>
</div>

Вот мой html и js: Pen из Codepen.io

Вместо того, чтобы создавать первый "список доменов", а затем создавать другой для следующего, он просто перезаписывает предыдущий "список доменов". Вот почему оно показывает последнее значение строки. Кто-нибудь знает, как это исправить?

Благодарю!

Теги:

3 ответа

1
Лучший ответ

Вы используете .html(), который удаляет существующий контент и заменяет его новым контентом. Вам нужно использовать append, чтобы новый контент был добавлен после последнего дочернего элемента.

var myStringArray = ["Hello", "World"];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
    var $el = $("<div  />", {
        'class': 'domain-list' + i,
        html: "<p>" + myStringArray[i] + "</p>"
    }).appendTo("div.container");
    // $el refer to the newl added element
}

Демо: скрипка

  • используйте .appendTo(), чтобы он возвращал вновь созданный элемент, который можно использовать для дальнейшей обработки
  • 0
    Спасибо! Работает отлично.
1

Попробуйте использовать appendTo в jquery

var myStringArray = ["Hello","World"];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
  $("<div class='domain-list"+i+"'></div>").html("<p>"+myStringArray[i]+"</p>").appendTo("div.container");
  //Do something
}
1
for (var i = 0; i < arrayLength; i++) {
  $("div.container").html("<div class='domain-list'></div>");
  $(".domain-list:nth-child("+i+")").html("<p>"+myStringArray[i]+"</p>");
  //Do something
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню