我的问题是我有一个HTML对象 - &gt; <button></button>
,此按钮内有一个onclick
调用函数的事件,该函数从按钮所在的位置获取变量:
<button onclick="myFunction(myVariable)"></button>
但是我想在myFunction()中使用myVariable 我已经尝试过这样的事情:
function myFunction(myVariable){
alert(myVariable);
}
但我只能将objecthtmlbuttonelement作为警告..
希望你能帮助我们,谢谢!
//为了更好地理解我将我的代码添加到:
function displayProducts(){
//var sum = 0;
sum = 0;
db.transaction(function(tx){
tx.executeSql("SELECT * FROM products",[], function(tx,results){
len = results.rows.length;
var stuff = "<div id='products'>";
for (var i=0; i<len; i++){
var products_all = results.rows.item(i).p_name; //the variable
var price = results.rows.item(i).price;
if(i%4==0){
stuff += "<br/>";
}
var izdelki = "<div id='izpis_izdelkov'>";
//here's the button element
stuff += "<button class='pivo' id='"+products_all+"' onclick='Calculate("+products_all+");' name='"+products_all+"' value='"+price+"'>"+products_all+'</button>';
}
$('#stuff').html(stuff + "</div>");
$('#izd').html(izdelki + "</div>");
});
});
}
//我想要使用变量
的函数function Calculate(products_all){
alert(products_all);
}
答案 0 :(得分:1)
试试这个
<button onclick="myFunction(myVariable)"></button>
function myFunction(varriableFunc){
alert(varriableFunc);
alert(myVariable);
}
你传递的是变量&#34; myVariable&#34;如何使用函数参数,这个参数与&#34; myVariable&#34;具有相同的值。
如果你想使用&#34; myVariable&#34;在函数内部它需要一个全局变量。更好的方法是传递值如何参数。
在新代码中添加
for (var i=0; i<len; i++){
var products_all =
这样变量products_all仅存在于for上下文中。尝试将其声明为全局变量。
var products_all = 0;
在标签的开头;
你不需要传递products_all来函数如何参数,你可以使用它所有的脚本。但是对此感到满意。
答案 1 :(得分:0)
你必须使用''。
<button onclick="myFunction('myVariable')"></button>
这也适用于此:
<script>
myVariable = "lol";
function myFunction(myVariable){
alert(myVariable);
}
</script>
<button onclick="myFunction(myVariable)"></button>
答案 2 :(得分:0)
作为一种解决方法,我将变量的值作为数据属性添加到按钮,并将this
作为参数传递给处理函数:
stuff += "<button class='pivo' id='"+products_all+"' onclick='Calculate(this);' name='"+products_all+"' value='"+price+"' data-value='"+products_all+"'>"+products_all+"</button>";
并访问函数
中的data属性function Calculate(btn){
alert($(btn).attr('data-value')); //
}
答案 3 :(得分:0)
您需要做的就是在products_all
属性中的onclick
值附近插入引号。然后很明显,您传递的是带有该值的字符串,而不是尝试引用具有该名称的(不存在的)变量:
stuff += "<button onclick='Calculate(\"" + products_all + "\">";
...与您的代码进行比较:
stuff += "<button onclick='Calculate(" + products_all + ">";
如果products_all
的值为“a”,“b”和“c”,则您的版本将生成:
<button onclick='Calculate(a)'>
<button onclick='Calculate(b)'>
<button onclick='Calculate(c)'>
...引用名为a
,b
和c
的未定义变量。更改后的版本将生成:
<button onclick='Calculate("a")'>
<button onclick='Calculate("b")'>
<button onclick='Calculate("c")'>
...以便您将其中一个字符串值“a”,“b”或“c”传递给post_all
内的Calculate()
变量。