2012-07-10 56 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' 
相關問題