Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 如何在一个字符串中向JS函数发送多个参数?_Javascript_Function - Fatal编程技术网

Javascript 如何在一个字符串中向JS函数发送多个参数?

Javascript 如何在一个字符串中向JS函数发送多个参数?,javascript,function,Javascript,Function,更新 函数名不是问题所在(意外复制错误) 问题是我在发送字符串! 多亏了mplungjan问题解决了 这是我的代码: $("#GVHistory").append("<tr><td>" + order.OrderID +"</td><td><a href='#dialogHistory' id='ShowDet' data-role='button' data-transition='pop' onclick='function(" + o

更新 函数名不是问题所在(意外复制错误) 问题是我在发送字符串! 多亏了mplungjan问题解决了

这是我的代码:

 $("#GVHistory").append("<tr><td>" + order.OrderID +"</td><td><a href='#dialogHistory' id='ShowDet' data-role='button' data-transition='pop' onclick='function(" + order.OrderID +"," + order.Total + ")'>Details</a></td></tr>");
当我发送1个参数时,它工作良好,但超过1个时失败。
另外,数据滚动不会产生任何影响,有什么想法吗?

您的函数名为fun,而不是函数。请确保在onclick事件中使用正确的名称


在html中的onclick事件中,函数为“function”,而函数为“fun”

以下代码起作用:

<!DOCTYPE html>
<html>
    <head>
    <script src="js/jquery.js"></script>
</head>
<body>
    <div id="HistHead">Test</div>
    <table id="GVHistory"></table>
    <script>
    $(document).ready(function(){
        order ={OrderID:12,Total:15};
        $("#GVHistory").append("<tr><td>" + order.OrderID +"</td><td><a href='#dialogHistory' id='ShowDet' data-role='button' data-transition='pop' onclick='fun(" + order.OrderID +"," + order.Total + ")'>Details</a></td></tr>");

    });
    function fun(id,t) {
        $("#HistHead").empty();
        $("#HistHead").append(t + id);
    }
    </script>
</body>

试验
$(文档).ready(函数(){
订单={OrderID:12,总计:15};
$(“#GVHistory”).append(“+order.OrderID+”);
});
功能乐趣(id,t){
$(“#HistHead”).empty();
$(“#HistHead”).append(t+id);
}

为了更好地理解,我想更详细地解释。
让我们假设:order.OrderID=“orderId1”和order.Total=“total100”

在将此
附加到DOM时,
order.OrderID
order.Total
值将附加到onclick函数,而不是变量

您的onclick已呈现为
onclick=“fun(orderId1,total100)”
如果单击此项,您将得到一个错误,因为未定义变量orderId1和变量total100。正确的解决方案是添加一些引号,以获得两个字符串。您必须用\转义引号,否则引号将在您的第一个代码段中破坏您试图附加的字符串

内联调用click函数总是有点混乱,特别是当您想要传递多个字符串或变量时。我总是采用自定义数据属性<代码>数据xxx=“xxx”移交某物

$("#GVHistory").append("<tr><td>" + order.OrderID +"</td><td><a href='#dialogHistory' class='ShowDet ui-btn' data-transition='pop'  data-orderid='"+order.OrderID+"' data-ordertotal='"+order.Total+"'>Details</a></td></tr>");

$(".ShowDet").unbind("click").on("click", function (){
    var id = $(this).data("orderid");
    var t = $(this).data("ordertotal");

    $("#HistHead").empty().append(t + id);
});
$(“#GVHistory”).append(“+order.OrderID+”);
$(“.ShowDet”).unbind(“click”).on(“click”,函数(){
var id=$(this.data(“orderid”);
var t=$(this).data(“ordertotal”);
$(“#HistHead”).empty().append(t+id);
});
关于
data role=“button”


这个自定义jquery移动属性仅在第一次加载页面时位于DOM内部时才执行某些操作。如果你想动态地附加一些东西,你必须调用相应的小部件。对于按钮,只需调用
$(“.ShowDet”).button()
即可初始化按钮标记。但是对于按钮来说,一种更简单的方法是使用css类来设置它们的样式
.ui btn

这是因为您发送的是一个字符串而不是两个参数,并且名称也有问题-请尝试
onclick='fun(order.OrderID,order.Total)
-如果您想传递当前的订单内容:
onclick='fun(\“+order.OrderID+”,\“+order.Total+”)
错误的函数名称?在onclick…mplungjan中应该是
有趣的
,谢谢!!这就是我的问题:)
$("#GVHistory").append("<tr><td>" + order.OrderID +"</td><td><a href='#dialogHistory' class='ShowDet ui-btn' data-transition='pop'  data-orderid='"+order.OrderID+"' data-ordertotal='"+order.Total+"'>Details</a></td></tr>");

$(".ShowDet").unbind("click").on("click", function (){
    var id = $(this).data("orderid");
    var t = $(this).data("ordertotal");

    $("#HistHead").empty().append(t + id);
});