jquery div包含某个类的子级

时间:2011-11-18 23:11:23

标签: jquery

我有一个事件处理程序,它触发一个事件处理程序,需要测试div的子节点是否包含某个类。

现在,我这样做:

$('#Container .DivData').live({
  mouseenter: function () {
    if ($(this).find('.HiddenData')) {
      // do something
       } ....

问题是,即使有时没有HiddenData,它似乎总能找到HiddenData。

这里有什么问题?

2 个答案:

答案 0 :(得分:3)

if ($(this).find('.HiddenData').length > 0) {
  // do something
} ....

答案 1 :(得分:0)

如果找到您要查找的元素,您可以选择多种选项:

1)如果您想要做的事情是jQuery方法,并且您希望它对您正在寻找的事物进行操作,那么您不需要if语句。您只需指定jQuery方法即可。如果找不到匹配的元素,它就不会做任何事情。

$(this).find(".HiddenData").fadeIn();

2)如果您要做的事情是jQuery方法,并且您希望它在父级上运行,那么您也不需要if语句。您只需指定jQuery方法并使用.has()方法而不是.find()。如果找不到匹配的元素,它就不会做任何事情。

$(this).has(".HiddenData").css("color", "red");

3)如果逻辑更复杂并且您需要if语句,那么您可以像这样执行if语句:

if ($(this).find('.HiddenData').length > 0)