将HTML变量传递给Javascript

Passing HTML variable to Javascript

本文关键字:Javascript HTML 变量      更新时间:2023-09-26

所以我想做一个伤害计算器,用户写以下变量:等级,军阶,力量和武器等级。但问题似乎我不能发送变量到javascript和文档写不发送任何东西。你能帮我检查一下代码吗?关于

<form id="form">
Your level:<input type="number" name="level"><br>
Your strength: <input type="number" name="str"><br>
Your military rank: <input type="number" name="mr"> <br>
Your weapon(no weapon=0) <input type="number" name="wep"><br>
<input type="submit" value="Submit">`
</form>
<script type="text/javascript">
var level = document.getElementById('level').id;
var str = document.getElementById('str').id;
var mr = document.getElementById('mr').id;
var wep = document.getElementById('wep').id;
hit = ((level*4)+str)*(1+(mr/20))*(1+(wep/10));
document.write(hit);

您不希望获得元素的id:

document.getElementById('level').id

你想要得到它的:

document.getElementById('level').value

同样,为了使用getElementById,元素需要有一个id:

<input type="number" name="level" id="level">

或者,在不更改标记的情况下,可以使用getElementsByName并获取返回集合中的第一个元素:

document.getElementsByName('level')[0].value

你的问题是你引用你的标签的id,当你从来没有给它一个:

Your level:<input type="number" name="level"><br>

应该:

Your level:<input type="number" name="level" id="level"><br>

你的JS也没有要求值。只是对象本身。应该是:

var level = document.getElementById('level').value

您正在使用getElementById,但尚未定义任何Id值。

对于当前的html标记,您可以使用getElementsByName()代替。该方法返回一个匹配元素的数组。

例如,

var str = document.getElementsByName('str')[0].value;