1

$target.is( "a.foo" )将根据目标是否与 is() 中的内容匹配返回 true 或 false。

如果我想检查 is() 看到的内容怎么办?我使用什么功能?

我试图alert($(target.is())看看我是否能找出目标是什么,但我只是得到了错误的值。

4

7 回答 7

1

你可以试试event.target

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

$('a').click(function(event){
     var $target = $(event.target);
     if( $target.is("a.foo") ) {
        ...
     }
})
于 2012-07-10T08:46:34.503 回答
0

你可以使用 is() 检查一些变量以返回一个函数;它与 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();

  };
});
于 2012-07-10T08:49:28.897 回答
0

如果在对象上使用console.log,并且在$target 和a.foo 的选择器的typeof 上使用,这不是问题吗?

IE

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

我假设这是 .is() 将检查的内容,测试两个对象的值和类型,类似于 '===' 尽管我可能错了

于 2012-07-10T08:49:49.513 回答
0

对我来说,您似乎想知道是否找到了目标。他们这样做的方法:

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

如果要获取节点名称,请执行以下操作:

$target.get(0).nodeName
于 2012-07-10T09:02:34.383 回答
0

我不确定我是否理解这个问题,但根据您的主题,这里有一个类似的 jQuery 函数.hasClass()

$target.hasClass('foo'); // true if $target contains a className 'foo'
于 2012-07-10T08:46:14.303 回答
0

我想这可以帮助你

http://api.jquery.com/jQuery.type/

例子在这里:

jQuery.type(target);
于 2012-07-10T08:51:33.970 回答
0

所有 jQuery 对象都在一个属性中维护它们原来的选择器:

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

alert($target.selector); // Alerts '#originalSelector'
于 2012-07-10T16:31:59.223 回答