【发布时间】:2021-06-30 23:09:42
【问题描述】:
尝试使用多种语言创建连续列表:PHP、JavaScript、CSS。但是,如图所示,一旦调用了 JS 脚本,它就不会遵循列表的连续条纹设计。我正在使用 nth-child(odd) 来创建这种设计模式,但是无论我将 JS 脚本放在哪里,它都会继续表现不正确。为什么 JS 脚本没有继续该模式,我该如何解决这个问题?
提前致谢。
PHP
<!DOCTYPE html>
<html>
<head>
<title>Assignment</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="card">
<ul id="item-list">
<?php for ($i = 1; $i < 4; $i++) { ?>
<li><?php echo "php " . $i; ?></li>
<?php } ?>
<script src="list_v2.js"></script>
<li>CSS 1</li>
<li>CSS 2</li>
<li>CSS 3</li>
</ul>
</div>
</body>
</html>
JS
var ul = document.getElementById("item-list");
for(let i=1; i<4; i++){
var li = document.createElement('li');
li.innerHTML = "JavaScript " + i;
ul.appendChild(li);
}
CSS
ul {
list-style-type: none;
background-color: #fff;
color: #111;
}
li {
padding: 1rem;
text-align: center;
color: #808080;
}
li:nth-child(odd) {
background-color: #ece2e1;
}
【问题讨论】:
-
在整个文档加载完成之前像这样运行 JS 内联有点奇怪。我会等到整个 DOM 加载完毕,然后开始尝试注入这些元素。不确定这是否一定会解决问题,但我认为调试起来会更容易。其次,在PHP中注入一些内容和使用JS注入一些内容有点奇怪(你已经有了这个内容,它似乎是静态的,为什么不使用PHP服务器端?)。这让我想到了一些important context is missing。
标签: javascript html css css-selectors