在jquery中传递变量

时间:2011-01-06 02:16:42

标签: jquery variables

将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>

4 个答案:

答案 0 :(得分:6)

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

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

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

b(full);

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

$("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);
});

答案 1 :(得分:1)

参数?这里有什么东西我不见了吗?

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

打电话
b(full);

答案 2 :(得分:1)

    // define b
    function b(full) {
        alert(full);
    }

实际上,您没有使用全局变量。你在绑定到body元素的JQuery匿名函数中定义它们。

答案 3 :(得分:1)

除非你不希望函数b存在,或者在click函数之外使用,否则我会将它移到匿名函数之外。然后只需在定义中指定参数,然后像普通的

一样传递它们

实施例

<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);
        b(full);
    });
    function b(full)
    {
        alert(full);
    };
</script>