我有一个名为data.js的文件,其中包含一堆项目的JSON数据。目前,我的代码是静态的,没有使用这些数据。
如何动态生成div,以便在JSON数据文件中有许多不同的项时仍然有效?这样,如果我转到URL并输入产品代码中的一堆参数,它们都会显示出来。示例:?qs=ABC+HJK
代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
.dynamic-content {
display:none;
}
</style>
</head>
<body>
<!-- Default Dynamic Section -->
<div id="default-content" class="dynamic-content">
Default content
</div>
<!-- Dynamic Section 1 -->
<div id="apples" class="dynamic-content">
Apples
</div>
<!-- Dynamic Section 2 -->
<div id="oranges" class="dynamic-content">
Oranges
</div>
<!-- Dynamic Section 3 -->
<div id="bananas" class="dynamic-content">
Bananas
</div>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript">
(function($) {
// Parse the URL parameter
function getParameterByName(name, url) {
return url ?? location.href.split(`?${name}=`)[1];
}
$(document).ready(function() {
const keys = getParameterByName('qs')?.split('+');
let dynamicContent;
// For each entry, check whether it correspondents to a div
if (keys)
keys.forEach(key => {
if (key == 'apples')
dynamicContent = $('#apples');
else if (key == 'oranges')
dynamicContent = $('#oranges');
else if (key == 'bananas')
dynamicContent = $('#bananas');
if (dynamicContent)
dynamicContent.show();
});
// If no element is found, show the default one
if (!dynamicContent)
$('#default-content').show();
})
})(jQuery);
</script>
</body>
</html>发布于 2021-01-14 04:46:46
我会用香草js试试这样的东西。
示例js文件
objects.js
data = [
{
"productNumber":"123",
"name":"Ex Item 1"
},
{
"productNumber":"142",
"name":"Ex Item 2"
},
{
"productNumber":"153",
"name":"Ex Item 3"
},
{
"productNumber":"249",
"name":"Ex Item 4"
}
]
function makeDiv(prodNum, prodName){
exampleDiv = `
<div>
<h3>${prodNum}</h3>
<p>${prodName}</p>
</div>
`
return exampleDiv
}
const mainDiv = document.querySelector('#mainDiv')
data.forEach(element => {
productDiv = document.createElement('div');
productDiv.innerHTML = makeDiv(element.productNumber, element.name)
mainDiv.appendChild(productDiv)
});html文件
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="mainDiv"></div>
<script src="objects.js"></script>
</body>
</html>然后,您可以为生成的元素提供类和in,并且可以在html上放置一个if和一个div来检查数据是否为空,或者在js文件中设置默认值
https://stackoverflow.com/questions/65709144
复制相似问题