JSFiddle - React, Tailwind, and code Playground
HTML
<form id="form" name="form" method="post">
<a href="#" onclick="AgregarCampos();">Agregar Nota</a>
<ul id="campos"></ul>
<fieldset>
<label for="promedio">Su promedio es:</label>
<input type="number" name="promedio" id="promediof" step="any">
</fieldset>
<a href="#" onclick="resetear();">Limpiar formulario</a>
</form>
JavaScript
var nextinput = 0;
var total = 0;
function AgregarCampos() {
nextinput++;
campo = '<li id="idLi' + nextinput + '"><input type="number" size="20" id="nota' + nextinput + '" name="nota' + nextinput + '" step="any" onChange="multiplicar(\'nota' + nextinput + '\',\'pondera' + nextinput + '\',\'acumu' + nextinput + '\');" value=0 /> x <input type="number" size="20" id="pondera' + nextinput + '" name="pondera' + nextinput + '" step="any" onChange="multiplicar(\'nota' + nextinput + '\',\'pondera' + nextinput + '\',\'acumu' + nextinput + '\');" value=0 /> = <input type="number" size="20" id="acumu' + nextinput + '" name="acumu' + nextinput + '" step="any"/><a href="#" onClick="$(this).parent().remove()">Borrar</a></li>';
$("#campos").prepend(campo);
}
function resetear() {
$('#campos > li').remove();
$('#form')[0].reset();
}
function multiplicar(nota, pondera, acumu) {
m1 = document.getElementById(nota).value;
m2 = document.getElementById(pondera).value;
r = m1 * (m2 / 100);
total = total + r;
document.getElementById(acumu).value = r;
document.getElementById("promediof").value = total;
}