在jquery中传递变量

Hus*_*ein 1 variables jquery

将var full传递给函数b的最佳方法是什么?我不想使用全局变量.返回是唯一的选择.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 

<style> 
    .aaa, .bbb, .ccc { width:100px; height:100px;background-color:#ccc;margin-bottom:5px;}
</style>
<body class="123">

    <p id="ptest"></p>
    <p class="aaa" id="aaaid"></p>
    <p class="bbb" id="bbbid"></p>
    <p class="ccc" id="cccid"></p>
    <div></div>
</body>
<script type="text/javascript">
    $("body").click(function(e){
        var name = $(e.target)[0].nodeName;
        var nameid = $(e.target)[0].id;
        var classname = $(name+"#"+nameid).attr('class');
        var full = name+"#"+nameid;
        console.log(nameid);

        function b(){
            alert(full);
        };
    });
</script>
Run Code Online (Sandbox Code Playgroud)

Mar*_*row 6

您可以通过如下定义将变量传递给函数:

function b(x) {
    alert(x);
}
Run Code Online (Sandbox Code Playgroud)

然后通过声明其名称并将变量作为参数传递来调用它:

b(full);
Run Code Online (Sandbox Code Playgroud)

所以在你的代码的上下文中:

$("body").click(function(e){
    var name = $(e.target)[0].nodeName;
    var nameid = $(e.target)[0].id;
    var classname = $(name+"#"+nameid).attr('class');
    var full = name+"#"+nameid;
    console.log(nameid);

    function b(x){
        alert(x);
    };

    b(full);
});
Run Code Online (Sandbox Code Playgroud)