javascript-将函数结果显示为HTML
所以我有这个代码:javascript-将函数结果显示为HTML,javascript,html,Javascript,Html,所以我有这个代码: function check_total() { var inputElems = document.getElementsByTagName("input"), total = 0; for (var i=0; i<inputElems.length; i++) { if (inputElems[i].type == "checkbox"){ total++; } } }
function check_total()
{
var inputElems = document.getElementsByTagName("input"),
total = 0;
for (var i=0; i<inputElems.length; i++) {
if (inputElems[i].type == "checkbox"){
total++;
}
}
}
document.getElementById('totalInput').innerHTML = total;
功能检查\u总计()
{
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(var i=0;i,代码片段中缺少一些东西
首先,您需要将“total”变量移到函数之外。通过成为全局变量,您可以在以后的代码中使用它
其次,您需要实际触发此函数,以便它执行并更新total变量
check_total();
就在document.getElementById…行之前
最后,您可以使用document.querySelectorAll()函数来简化此过程。这将返回所有匹配元素的数组,您只需将其用作.innerHTML的一部分即可。通过使用此函数,您可以将所有代码替换为:
document.getElementById('totalInput').innerText = document.querySelectorAll("input[type=checkbox]").length;
最后,顺便说一句,您可能应该使用.innerText而不是.innerHTML。使用innerHTML总是很危险的,因为有人可能会在这里注入一些javascript。在这种情况下,因为您不想显示实际的HTML,所以只需使用.innerText,它做同样的事情,但使用文本而不是HTML
下面是一个工作示例:代码片段中缺少一些东西
首先,您需要将“total”变量移到函数之外。通过成为全局变量,您可以在以后的代码中使用它
其次,您需要实际触发此函数,以便它执行并更新total变量
check_total();
就在document.getElementById…行之前
最后,您可以使用document.querySelectorAll()函数来简化此过程。这将返回所有匹配元素的数组,您只需将其用作.innerHTML的一部分即可。通过使用此函数,您可以将所有代码替换为:
document.getElementById('totalInput').innerText = document.querySelectorAll("input[type=checkbox]").length;
最后,顺便说一句,您可能应该使用.innerText而不是.innerHTML。使用innerHTML总是很危险的,因为有人可能会在这里注入一些javascript。在这种情况下,因为您不想显示实际的HTML,所以只需使用.innerText,它做同样的事情,但使用文本而不是HTML
这里有一个有效的例子:我没有深入研究Joel的答案,所以不知道这是否也解决了这个问题。
我想Tyr肯定有什么发现,不过我也想知道你是否真的想知道复选框是否被选中了
这是一个快速而肮脏的射击
<!DOCTYPE html>
<html>
<head>
<script>
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('doit').addEventListener('click', function() {
check_total();
});
});
function check_total()
{
var inputElems = document.getElementsByTagName("input"),
total = 0;
for (var i=0; i<inputElems.length; i++) {
if (inputElems[i].type == "checkbox"){
// do you want to check the checkbox is checked, because it doesn't at the moment?
total++;
}
}
document.getElementById('totalInput').innerHTML = total;
}
</script>
</head>
<body>
<button id="doit">Do it</button><br />
<input type="checkbox" /><br />
<input type="checkbox" /><br />
<div id="totalInput"></div>
</body>
</html>
document.addEventListener('DOMContentLoaded',function(){
document.getElementById('doit')。addEventListener('click',function(){
检查_total();
});
});
功能检查_总计()
{
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(var i=0;i我没有深入研究Joel的答案,所以不知道这是否也解决了这个问题。
我想Tyr肯定有什么发现,不过我也想知道你是否真的想知道复选框是否被选中了
这是一个快速而肮脏的射击
<!DOCTYPE html>
<html>
<head>
<script>
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('doit').addEventListener('click', function() {
check_total();
});
});
function check_total()
{
var inputElems = document.getElementsByTagName("input"),
total = 0;
for (var i=0; i<inputElems.length; i++) {
if (inputElems[i].type == "checkbox"){
// do you want to check the checkbox is checked, because it doesn't at the moment?
total++;
}
}
document.getElementById('totalInput').innerHTML = total;
}
</script>
</head>
<body>
<button id="doit">Do it</button><br />
<input type="checkbox" /><br />
<input type="checkbox" /><br />
<div id="totalInput"></div>
</body>
</html>
document.addEventListener('DOMContentLoaded',function(){
document.getElementById('doit')。addEventListener('click',function(){
检查_total();
});
});
功能检查_总计()
{
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(var i=0;i您的示例看起来应该可以运行,除了代码中的情况外,您永远不会从函数返回任何内容。您还需要调用函数以使其运行计算
function check_total() {
var inputElems = document.getElementsByTagName("input"),
total = 0;
for (var i=0; i<inputElems.length; i++) {
if (inputElems[i].type == "checkbox"){
total++;
}
}
return total;
}
document.getElementById('totalInput').innerHTML = check_total();
功能检查\u总计(){
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(var i=0;i您的示例看起来应该可以运行,除了代码中的情况外,您永远不会从函数返回任何内容。您还需要调用函数以使其运行计算
function check_total() {
var inputElems = document.getElementsByTagName("input"),
total = 0;
for (var i=0; i<inputElems.length; i++) {
if (inputElems[i].type == "checkbox"){
total++;
}
}
return total;
}
document.getElementById('totalInput').innerHTML = check_total();
功能检查\u总计(){
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(var i=0;i尝试从查询所有复选框得到的节点列表构建一个数组:
const countCheckboxes = () =>
document.querySelectorAll('input[type=checkbox]')
const updateHeader = () =>
document.getElementById('totalInput').textContent = countCheckboxes();
updateHeader();
如果只想计算选中的复选框,则应使用Array.from
const isChecked = input =>
input.checked
const checkedCheckboxes = ()
Array.from(document.querySelectorAll('input[type=checkbox]'))
.filter(isChecked)
.length
尝试从查询所有复选框得到的节点列表中构建一个数组:
const countCheckboxes = () =>
document.querySelectorAll('input[type=checkbox]')
const updateHeader = () =>
document.getElementById('totalInput').textContent = countCheckboxes();
updateHeader();
如果只想计算选中的复选框,则应使用Array.from
const isChecked = input =>
input.checked
const checkedCheckboxes = ()
Array.from(document.querySelectorAll('input[type=checkbox]'))
.filter(isChecked)
.length
您试图将函数结果绘制到DOM中的那一行不在函数中。请将该行放入check_total()中(记住也要调用函数)
功能检查\u总计(){
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(变量i=0;i
默认情况下,您试图将函数结果绘制到DOM中的那一行不在函数中。请将该行放入check_total()中(记住也要调用函数)
功能检查\u总计(){
var inputElems=document.getElementsByTagName(“输入”),
总数=0;
对于(变量i=0;i
默认值
将总数设置为0;
outsi