Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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
Php jQuery中的JavaScript函数参数_Php_Javascript_Jquery_Ajax_Events - Fatal编程技术网

Php jQuery中的JavaScript函数参数

Php jQuery中的JavaScript函数参数,php,javascript,jquery,ajax,events,Php,Javascript,Jquery,Ajax,Events,我正在使用jQuery和JavaScript。我有一个调用JavaScript函数的onclick事件。如何在jQuery中提取函数A和函数B的参数 这是最好的方法吗 我需要在JavaScript点击后进行Ajax调用。使用jQuery是否存在任何性能问题 我的代码: <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script>

我正在使用jQuery和JavaScript。我有一个调用JavaScript函数的onclick事件。如何在jQuery中提取函数A和函数B的参数

这是最好的方法吗

我需要在JavaScript点击后进行Ajax调用。使用jQuery是否存在任何性能问题

我的代码:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>
            $(document).ready(function(){
                //Here need to extract the JavaScript function arguments
                var id1=from_javascript_function_A
                var id2=from_javascript_function_B

                var link1=from_javascript_function_A
                var link2=from_javascript_function_B
                //
        </script>
    </head>
    <body>
        <a href='#' onclick=javascript:function_A('first',1)>link1</a>
        <a href='#' onclick=javascript:function_B('second',2)>link2</a>
    </body>
</html>

$(文档).ready(函数(){
//这里需要提取JavaScript函数参数
var id1=来自javascript函数
var id2=来自函数
var link1=来自javascript函数
var link2=来自javascript函数
//

如果您真的想从函数调用中提取参数,您需要进行大量的手动解析,例如

$("a").each(function(){
  var onclicktext = $(this).attr("onclick");
  if(onclicktext.indexOf("function_A") > -1){
    // Do more parsing here
  }
  if(onclicktext.indexOf("function_B") > -1){
    // Do more parsing here
  }  
});

如果你真的想从函数调用中提取参数,你需要做大量的手工解析,例如

$("a").each(function(){
  var onclicktext = $(this).attr("onclick");
  if(onclicktext.indexOf("function_A") > -1){
    // Do more parsing here
  }
  if(onclicktext.indexOf("function_B") > -1){
    // Do more parsing here
  }  
});

函数参数仅在该函数中可见。通常它们是变量,它们的值仅在调用函数时(在您的示例中,单击相应链接时)才有意义。在
$(document).ready
中,它们的值不相关


如果参数不是变量,它们是已知的,您无论如何也不会问这个问题。

函数参数仅在该函数中可见。通常它们是变量,它们的值只有在调用函数时才有意义(在您的示例中,当单击相应的链接时)。在
$(文档).ready
中,它们的值不相关

如果参数不是变量,那么它们是已知的,并且无论如何你都不会问这个问题。

如果你不能编辑代码,那么你所能做的就是一些难看的破解:

$("a").each(function(){
  fnStr = ($(this).attr('onclick')).toString();
  re = /\"[^\"]+\"/
  alert(re.exec(fnStr));
  re = /\'[^\"]+\'/
  alert(re.exec(fnStr));
});
上面的代码用于获取引号之间的参数。您可以自己尝试;不同的浏览器可能有不同的行为。

如果您无法编辑代码,那么您所能做的就是进行一些丑陋的攻击:

$("a").each(function(){
  fnStr = ($(this).attr('onclick')).toString();
  re = /\"[^\"]+\"/
  alert(re.exec(fnStr));
  re = /\'[^\"]+\'/
  alert(re.exec(fnStr));
});

上面的代码用于获取引号之间的参数。您可以自己尝试;不同的浏览器可能有不同的行为。

类似这样的东西怎么样

<script>
        $(document).ready(function(){
            $("a.a").click(function(e){
                DoWork('a',1,function_a);
            });
            $("a.b").click(function(e){
                DoWork('b',2,function_b);
            });
        });

        function DoWork(s,i,f){
            f(s,i);
            alert("after click:" + s + " " + i);
        }

        function function_a(s,i){
            alert("a:" + s + " " + i);
        }
        function function_b(s,i){
            alert("b:" + s + " " + i);
        }

    </script>

</head>
<body>

    <a href="#" class="a">a</a>
    <a href="#" class="b">b</a>
</body>

$(文档).ready(函数(){
$(“a.a”)。单击(功能(e){
道工('a',1,功能a);
});
$(“a.b”)。单击(功能(e){
道工('b',2,功能_b);
});
});
功能定位销(s、i、f){
f(s,i);
警报(“单击“+s+”+i”后);
}
函数a(s,i){
警报(“a:+s+”+i);
}
功能_b(s,i){
警报(“b:+s+”+i);
}

像这样的东西怎么样

<script>
        $(document).ready(function(){
            $("a.a").click(function(e){
                DoWork('a',1,function_a);
            });
            $("a.b").click(function(e){
                DoWork('b',2,function_b);
            });
        });

        function DoWork(s,i,f){
            f(s,i);
            alert("after click:" + s + " " + i);
        }

        function function_a(s,i){
            alert("a:" + s + " " + i);
        }
        function function_b(s,i){
            alert("b:" + s + " " + i);
        }

    </script>

</head>
<body>

    <a href="#" class="a">a</a>
    <a href="#" class="b">b</a>
</body>

$(文档).ready(函数(){
$(“a.a”)。单击(功能(e){
道工('a',1,功能a);
});
$(“a.b”)。单击(功能(e){
道工('b',2,功能_b);
});
});
功能定位销(s、i、f){
f(s,i);
警报(“单击“+s+”+i”后);
}
函数a(s,i){
警报(“a:+s+”+i);
}
功能_b(s,i){
警报(“b:+s+”+i);
}