2012-07-10 54 views
1

$target.is("a.foo")将返回true或false,取决于目标是否匹配内部是()。另一个类似于is()的JQuery函数是什么?

如果我想检查()看到什么,该怎么办?我使用什么功能?

我试着alert($(target.is())看看我是否能够找出目标是什么,但我刚刚得到的值为false。

+0

*“是什么如果我想检查()看到什么?“*这是什么意思?如果你想知道它是如何工作的,请查看源代码。 – 2012-07-10 08:50:51

+2

我想OP是要求一个函数,你可以调用一个jQuery对象来返回“a.foo”,一个描述元素的字符串。问题是,一个目标可以使用jQuery针对许多不同的方式,所以没有一个单独的字符串可以描述一个元素“是”。元素可以是“a”或“a.foo”或“a [href ='foobar']”或“a.foo#bar [href ='foobar']”。所有这些都可能与您的目标匹配,但无法调用反函数。 – tb11 2012-07-10 08:55:22

+0

你尝试过'$ target.is.toString()'吗? – 2012-07-10 08:58:13

回答

0

我不确定我是否理解这个问题,但根据您的主题,此处类似的jQuery功能应该是.hasClass()

$target.hasClass('foo'); // true if $target contains a className 'foo' 
1

你可以尝试event.target

目标属性可以是注册的事件或它的后代元素。将event.target与此进行比较以确定事件是否由于事件冒泡而被处理通常很有用。当事件发生时,此属性在事件委派中非常有用。

$('a').click(function(event){ 
    var $target = $(event.target); 
    if($target.is("a.foo")) { 
     ... 
    } 
}) 
0

u可以使用的是()来检查一些变量返回的功能; 它非常类似于hasClass方法..

$('a').hover(function() { 
    $target = $(this); 
    if(!$target.hasClass('active')) {//or u can use is('#active') to check id 
          //to prevent same response on same object hover 
    $('a').removeClass('active'); 
    $target.addClass('active'); 
    $('.allPages').hide(); 
    var getID = $target.attr('id'); 
    $('#'+getID).show(); 

    }; 
}); 
0

如果会使用对象的console.log,并同时在$目标和a.foo的选择的将typeof这不会是一个问题?

console.log($('a.foo')); 
console.log(typeof($('a.foo'))); 
console.log($target); 
console.log(typeof($target)); 

我想这是什么。就是()将被检查,测试两个对象的价值和类型,类似于“===”虽然我可能是错的

0

对我来说,它看起来像你想找出目标是否被发现。 他们的方式来做到这一点:

if($target.length > 0){ 
    //found 
} 

如果你想获得节点名称做:

$target.get(0).nodeName 
+0

不,我知道目标被找到了,我只是不知道它是什么。 – 2012-07-10 09:05:31

+0

编辑答案,如果你想得到节点名称,如:div,li,表单等。 – 2012-07-10 12:53:55

+0

是的,这是正确的。因为这是给予is()的信息。 – 2012-07-10 20:06:21

0

所有的jQuery对象的属性保持原来的选择:

var $target = $('#originalSelector'); 

alert($target.selector); // Alerts '#originalSelector' 
相关问题