操纵众多之一?

时间:2011-07-05 07:15:54

标签: javascript jquery

我有一些标记,就像这样......

<div id="items">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>

我想编写一些函数来使用jQuery来影响每个函数。有点像...

$(".item").click(function(i){
    i.hide();
});

有人可以给我一个简短的解释如何使这项工作?我应该使用.each()?

7 个答案:

答案 0 :(得分:2)

你可以这样做:)

$(".item").live('click',function(){
    $(this).hide();
});

答案 1 :(得分:2)

(a)文档清楚说明事件处理程序的作用。

(b)与大多数jquery方法一样(并且所有异常都明确指出它们是异常),.click将应用于jquery对象选择的集合的每个成员。所以,不,如果您希望每个人都安装与事件处理程序相同的功能,则不需要使用.each

(c)thisevent.currentTarget(或在您的示例中,i.currentTarget)是访问作为事件接收者的dom节点的方式。您示例中的i将成为事件对象。

答案 2 :(得分:1)

它没有每个

也有效
$(".item").click(function() {
   $(this).hide();
});

答案 3 :(得分:0)

$('.item').each(function(index){
    $(this).bind('click', function(){
        $(this).hide();
        //alert("hiding item nr: "+index);
    });
});

答案 4 :(得分:0)

是的,您可以使用每个,如下所示:

$(".item").each(function(){
   //Here, use $(this) to reference current element 
   $(this).hide();
});

.each()将您传递给匹配选择器中每个元素的函数应用于this当前元素。

它有可选参数和其他东西。您可以在此处了解详情:http://api.jquery.com/jQuery.each/

希望这会有所帮助。干杯

答案 5 :(得分:0)

这有希望做你想要的。如果有效,请告诉我们,希望有所帮助。

$(".item").each(function(){
     $(this).click(function () {
         $(this).hide();
     });
});

答案 6 :(得分:-1)

您希望在处理函数中使用$(this)而不是i。处理程序的参数是event object,其中包含有关事件的信息(例如单击它的鼠标坐标以及其他内容)。可能i中的某个位置是被点击的对象,但您可以使用this更轻松地访问“点击的任何对象”。

您不必使用each,因为jQuery会自动将处理程序绑定到查询".item"匹配的每个元素。

$(".item").click(function(i){
    $(this).hide();
});

修改:根据the documentation中的说明,在$(...)周围添加了this。 (出于某种原因,没有$,它对我有用,但显然你需要它。)