如何使用相同的 JS 代码(带复选框的文本和一些 css)自动创建数百个相同的元素

How to use the same JS code (text with a checkbox with some css) to create hundreds of the same element automaticly

我需要数百个具有不同 ID 的相同元素,这样它们就可以触发不同的歌曲,而无需实际手动更改它们的 ID。 这里是 HTML、JS 和 CSS:https://jsfiddle.net/Tylanmon/by5Lcvw0/4/ 这只是 JS:

var Song_Name = document.createTextNode('La Marseillaise')

var div = document.createElement('div')
div.setAttribute('class', 'div')
var checkbox = document.createElement('input')
checkbox.type = 'checkbox'
checkbox.name = 'checkNAME'
checkbox.id = 'checkID'

var label = document.createElement('label')
label.id = 'nameID'
label.htmlFor = 'checkID'
label.appendChild(Song_Name)

div.appendChild(label)
div.appendChild(checkbox)

document.getElementById('songs').appendChild(div)
//  
var length = label.offsetWidth  
var length2 = checkbox.offsetWidth
console.log(length);

div.style.width = `${length + (length2 * 2 - 5.9)}px`;
div.style.backgroundColor = 'whitte'
div.style.borderRadius = '4px'
div.style.border = `1px solid black`;

记住你是 js 的新手,所以我只展示了 html 创建与 js 部分。如果你知道循环是如何工作的,你可以很容易地使用它

要多次创建相同的标记,您可以按照以下步骤进行操作

const mainDiv = document.querySelector("#songs")

function newTextWithCheckBox(songName,id){
        let div = document.createElement("div")
    div.className = "each-song"
    div.id = "song-" + id
    div.innerHTML = 
    `${songName}
     <input type="checkbox" />`
    return div
}

// now create as many as you wanted
mainDiv.append(newTextWithCheckBox("La Marseillaise",1))
mainDiv.append(newTextWithCheckBox("La Marseillaise",2))
mainDiv.append(newTextWithCheckBox("La Marseillaise",3))
mainDiv.append(newTextWithCheckBox("La Marseillaise",4))
@font-face {
    font-family: Feather;
    src: url(/Font/feather.ttf);
}

.div {
-webkit-user-select: none; 
-moz-user-select: none;
-ms-user-select: none; 
user-select: none; 

Background-color: rgb(255, 221, 221);

font-size: x-large;


}

label {
    color: rgb(0, 0, 0); 
    
    font-family: 'Feather';
}

.each-song {
    background:pink;
    padding:15px;
    border : 1px solid black;
    width:max-content;
}
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="LanguageName_French.css">
</head>
<body>
    <div id="songs">

    </div>
    <script src="LanguageName_French.js"></script>
</body>
</html>