Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript函数中的onclick按钮内调用外部函数_Javascript_Html_Jquery_Button_Onclick - Fatal编程技术网

在javascript函数中的onclick按钮内调用外部函数

在javascript函数中的onclick按钮内调用外部函数,javascript,html,jquery,button,onclick,Javascript,Html,Jquery,Button,Onclick,我的目标是打印字符串,并为每个字符串打印一个按钮。此按钮需要一个onclick=“add()” +“+”+ 在read()函数中调用外部函数时遇到问题。我需要声明一个使用onclick函数并调用add()的按钮,但当我运行代码时,不会发生任何情况。 函数添加(nome,prezzo) { var=0; var prodotto=新对象(); prodotto.nome=nome; prodotto.costo=prezzo; 生产量=1; 对于(i=0;iadd(nome,quantita

我的目标是打印字符串,并为每个字符串打印一个按钮。此按钮需要一个onclick=“add()”

+“+”+
在read()函数中调用外部函数时遇到问题。我需要声明一个使用onclick函数并调用add()的按钮,但当我运行代码时,不会发生任何情况。

函数添加(nome,prezzo)
{
var=0;
var prodotto=新对象();
prodotto.nome=nome;
prodotto.costo=prezzo;
生产量=1;
对于(i=0;i”;
//document.getElementById(“demo”).innerHTML=;
var x=document.createElement(“HR”);
document.getElementById(“demo”).appendChild(x);
document.getElementById(“ordine”).value=document.getElementById(“demo”).innerHTML;
totale=totale+carrello[i]。科斯托*卡雷洛[i]。quantita;
document.getElementById(“totale”).innerHTML=“totale:”+totale+“€”;
}
if(carrello.length==0)
{
totale=0;
document.getElementById(“totale”).innerHTML=“”;
}
document.getElementById(“tot”).value=totale;

}
简单的回答是:放弃JQuery并将原始HTML编写为字符串,而是使用浏览器原生API

您可以使用
document.createElement
创建元素对象,然后直接在JavaScript中处理该对象。比如:

const button=document.createElement('button'))
//现在您有了一个基本的按钮元素,您可以随意插入或操作它
//添加'onClick'回调
button.onClick=()=>add(…您的参数)
如果您必须多次重复类似的内容,请将其包装到一个helper函数中,例如

函数makeButton({nome,quantita}){
const button=document.createElement('按钮')
button.onClick=()=>add(nome,quantita)
返回按钮
}
例如,现在您可以直接将其与
carrello.map(makeButton)
和presto一起使用!您将有一组按钮准备添加到dom中。这样,您就不必为循环执行所有的
,而且代码既可读又可维护

所有原始HTML编写几乎都不可能维护和调试,JQuery降低了您的控制级别,同时常常给人一种错误的可维护性感觉。
作为JS对象创建、操作和管理元素将使您对其功能(以及代码的实际功能)有更深入的了解,并使您有一种结构感,而不是由浏览器解释的浮动字符串。

根据您提供的内容,这些函数都不会被调用。我已将您的代码添加到可运行的代码段中。请编辑它以反映一个是无用的复制整个算法我只是想知道如何在一个onclick中调用另一个函数中的函数。好吧,如果我们没有一个可复制的例子,那么尝试帮助您解决问题是无用的。你必须明白,我们不能凭直觉知道发生了什么。您没有指定您得到的实际错误,只是什么都没有发生。有一项调试工作,您应该已经完成了,如果没有合适的示例,我们也无法完成。您可能/可能想要
“+”
——但这只是一个猜测。为什么不添加委派事件处理程序而不是过时的
onclick=
?但是,
nome
看起来可能是“name”,因此如果名称中有空格,则需要在引号中加引号。阅读-强调最小代码来重现问题-问题到底是什么?它是否使用带有按钮的
innerHTML+=
?那么你就不需要所有其他的代码了。是不是
nome
中有一个空格,它破坏了你的HTML?然后,您不需要所有其他代码,但您确实需要一个
nome
的示例。我们不需要“整个算法”,只需要演示问题而无需猜测。
+"<button onclick=add("+carrello[i].nome+","+carrello[i].quantita+");>+</button>"+