将变量传递给Jquery函数

时间:2012-02-10 02:41:28

标签: jquery variables iteration

我有一个项目列表,我想对其执行相同的操作。它们都有单独的ID,因此我希望能够将每个ID的名称传递给Jquery,以便仅对该ID执行操作。 例如:

<a href="#" id="1">one</a>
<a href="#" id="2">two</a>
<div id="#test1"></div>
<div id="#test2"></div>

我希望能够做到这样的事情:

function doSomething(x) {
     var div=x+'div';
     $(x).click(function() { $.(div).slideDown(); });
}

有什么想法吗?

感谢。

5 个答案:

答案 0 :(得分:3)

使用onclick属性,稍微简化了代码:

<a href="#" id="1" onclick="handleClick(this)">one</a>
<a href="#" id="2" onclick="handleClick(this)">two</a>
<div id="#test1"></div>
<div id="#test2"></div>

function handleClick(x) {
     $('#test'+ x.id).slideDown();
}

答案 1 :(得分:3)

这是如何在jquery fn中传递变量

             

    <title>Test</title>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#but").click(function() {
                var n = $(this).attr("n");
                alert(n);
            });
        });
    </script>
</head>
<body>
    <a id="but" href="#" n="I Love You">Click Here</a>
</body>

答案 2 :(得分:2)

<a href="#" class="x" d="test1">one</a>
<a href="#" class="x" d="test2">two</a>
<div id="test1" class="x"></div>
<div id="test2" class="x"></div>
function doSomething(x) 
{
   $("a.x").click(function()
   { $( "div#" + $(this).attr("d") ).slideDown(); }
   );
}

答案 3 :(得分:2)

您可以将jQuery元素直接传递给函数,如下所示:

var doSomething = function(el){
    el.click(function(){ });
};

// Single element
var $el = $('a.class');
doSomething($el);

// Multiple elements
var $elms = $('a.class, a#id');
doSomething($elms);

答案 4 :(得分:0)

您可以使用此类data属性将数据与html元素一起存储,并使用jQuery data()方法检索它们。试试这个。

Html更改

<a href="#" data-id="1">one</a>
<a href="#" data-id="2">two</a>
<div id="test1"></div>
<div id="test2"></div>

使用此js

$('a').click(function(){
   $('#test' + $(this).data('id')).slideDown();
});

要使用jQuery data方法检索数据属性值,只需传递属性的后半部分即可。因此,在这种情况下,将id传递给data将为我们提供id值。