#javascript #html #for-loop #append
Вопрос:
в следующем фрагменте у меня есть цикл for и я хочу добавлять HTML-код в каждой итерации, чтобы использовать список внутри моего ul-тега. Если я заменю = оператором=, это сработает, но, очевидно, только для последнего элемента. Как я могу правильно добавить его в цикл?
var text = "the Text"
var list
for (var i = 1; i < split_respone.length; i =2) {
list = <li className="link-list-item">
<a
href={split_respone[i]}
target="_blank"
rel="noopener noreferrer"
className="link-list-item-url">
{split_respone[i 1]}</a>
</li>
}
string = <ul className="link-list">{text}{list}</ul>;
}
const message = self.createChatBotMessage(string);
});
}
Комментарии:
1. Вы должны ввести
list
в пустую строку:var list = "";
. Вам также нужно поместить обратные метки вокруг строк шаблона.2. Что
});
вы делаете и}
делаете в конце?3. но теперь мой список представляет собой строку и печатается в моем интерфейсе. Мне нужен HTML-объект, чтобы он не печатал строку, а показывал список.
4. То, что вы делаете с результирующей строкой, — это другая проблема.
5. Вы должны назначить его для
.innerHTML
DIV.
Ответ №1:
Вы должны установить «список» в пустую строку, чтобы он работал. Кроме того, поскольку вы объединяете строки, вам необходимо заключить HTML-код в кавычки. (Вы также можете использовать `)
var text = "the Text"
var list = "";
for (var i = 1; i < split_respone.length; i =2) {
list = '<li className="link-list-item">
<a
href={split_respone[i]}
target="_blank"
rel="noopener noreferrer"
className="link-list-item-url">
{split_respone[i 1]}</a>
</li>'
}
string = <ul className="link-list">{text}{list}</ul>;
}
const message = self.createChatBotMessage(string);
});
Комментарии:
1. но теперь мой список представляет собой строку и печатается в моем интерфейсе. Мне нужен HTML-объект, чтобы он не печатал строку, а показывал список.
2. @reBo137 Не могли бы вы попробовать использовать ` вместо «?
3. Я нашел решение. Я инициализировал свой список как list = [] и изменил оператор = на list.push(html_code без «» или «)