在Jquery中提到'这些'

时间:2012-01-21 23:50:07

标签: jquery

这是一个JQuery函数:

$("label[for='ch_c'], label[for='ch_ad']").click( function(){
    if( $(this).hasClass('active') ){
        $('#box').fadeIn(300);
    } else {
        $('#box').fadeOut(300);
    } 
});

我需要(this)来引用这两个元素中的任何一个,因此如果#box中的任何一个具有类active,则(this)保持可见。目前,{{1}}仅指实际点击的元素。实际上,对于“其中任何一个”,是否存在Jquery术语?

4 个答案:

答案 0 :(得分:2)

click事件处理程序(以及任何其他事件处理程序)中,this将始终引用接收事件的元素。您可以简单地重复使用选择器匹配的元素:

var elems = $("label[for='ch_c'], label[for='ch_ad']");
elems.click( function(){ //Bind click event handler to matched elements
    if(elems.hasClass('active') ){ //If any elements have active class
        $('#box').fadeIn(300);
    } else {
        $('#box').fadeOut(300);
    } 
});

答案 1 :(得分:0)

  

实际上,对于“其中任何一个”,是否存在Jquery术语?

没有。你必须自己做。使用相同的选择器。

答案 2 :(得分:0)

NO。 this将始终引用触发事件的DOM元素。如果要检查这两个元素,则必须明确选择元素。

可以将匹配的元素存储到处理程序中的变量中,并在处理程序中使用它,这样每次触发事件时都不必查找元素。

答案 3 :(得分:0)

我不相信有。您最好的选择是调用this上的代码及其兄弟,您可以通过引用元素ID的一部分来磨练正确的兄弟。