【发布时间】:2017-12-11 23:43:09
【问题描述】:
我已经使用 javascript 成功创建了一个 div,其中填充了从 API 收集的数据。我想获取该数据的一部分(来自 Episode、SeasonxEpisode 等的所有 innerHTML 文本)并将其放入包含的 div 中,以便我可以将其隔离为 css 样式。
这是我的代码,所有内容都在同一个父级中。还有一个从 API 中提取的图像显示在 episodeDiv 中,但它没有包含在此代码 sn-p 中,因为它不是问题的一部分。
<script>
let savedResponse;
function clickSeason (seasonNum) {
const currentSeason = savedResponse['season'+ seasonNum];
$("#episode-list").html("");
currentSeason.forEach(function(episode){
const episodeDiv = document.createElement('div');
$(episodeDiv).addClass("episodeStyle");
episodeDiv.innerHTML =
"Episode: " + episode.title + '<br />' + '<br />' +
"SeasonxEpisode: " + episode.episode + '<br />' +
"Original Airdate: " + episode.airdate + '<br />' +
" Stardate: " + episode.stardate + '<br />' +
episode.summary;
$('#episode-list').append(episodeDiv);
</script>
你可以在这里看到完整的项目:http://idesn3535-flamingo.surge.sh/Final/index.html
完整代码在这里:https://github.com/bmaxdesign/idesn3535-flamingo/blob/master/Final/index.html
我尝试了几个版本:
const episodeData = document.createElement('p');
$(episodeData).addClass("episodeDataStyle");
episodeData.innerHTML =
"Episode: " + episode.title + '<br />' + '<br />' +
"SeasonxEpisode: " + episode.episode + '<br />' +
"Original Airdate: " + episode.airdate + '<br />' +
" Stardate: " + episode.stardate + '<br />' +
episode.summary;
$("episodeData").appendChild(episodeDiv);
我希望父节点是 episodeDiv,然后我想将 episodeData 嵌套为具有单独 id 的子节点以在 css 中设置样式。不幸的是,我上面的内容实际上使整个 episodeDiv 都没有显示,我认为这意味着我附加的方式存在一些错误。我想我有一些标签混淆或语法错误,或以上所有。我试图避免在我的 HTML 页面中留下一个空元素,但我也会对这种方法以及如何将文本放置在空 div 中感到困惑。我显然还不了解 DOM 操作。
请确保您的回复包括原因和方式,以及我可以用来更好地理解这一点的任何关键字或链接。教人钓鱼等等。非常感谢!!
【问题讨论】:
-
const episodeDiv = document.createElement('div');$(episodeDiv).addClass("episodeStyle"); - 你为什么要在 foreach 中这样做?
-
没关系,我想我明白你的想法
-
有几个剧集正在显示,所以这个函数为每个剧集创建一个新的 episodeDiv。
标签: javascript jquery html dom appendchild