如何获得从onclick事件函数到javascript函数的值

时间:2014-04-22 20:08:58

标签: javascript jquery html

我的问题是我有一个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);
}

4 个答案:

答案 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)'>

...引用名为abc的未定义变量。更改后的版本将生成:

<button onclick='Calculate("a")'>
<button onclick='Calculate("b")'>
<button onclick='Calculate("c")'>

...以便您将其中一个字符串值“a”,“b”或“c”传递给post_all内的Calculate()变量。