.find和.contents不起作用。

7 浏览
0 Comments

.find和.contents不起作用。

我有一个条件,如果我的父元素div中有class为.ads的子元素,则应该弹出alert('true'),否则弹出alert('false')。但是我的函数在两种情况下都返回true。这是jsFiddle链接:http://jsfiddle.net/F3EXf/


    
    


        aaaa

嗨vega,请查看下面的屏幕截图

enter image description here

0
0 Comments

问题出现的原因:

在这段代码中,使用了jQuery的.find()方法来查找元素。但是在查找之后,使用了.length属性来判断是否找到了符合条件的元素。根据代码中的判断条件,如果找到了符合条件的元素,即长度大于0,就会弹出'true';否则,弹出'false'。

解决方法:

在这段代码中,不需要使用'>0'来判断长度是否大于0。因为在JavaScript中,0被视为false,而大于0的数值被视为true。所以,只需要判断长度是否为0即可。

修正后的代码如下:

 $(function () {
        if ($('#me').find('.ads').length) {
            alert('true');
        } else {
            alert('false');
        }
    });

这样修改之后,就可以正确判断是否找到了符合条件的元素了。如果找到了,弹出'true';否则,弹出'false'。

0
0 Comments

问题:.find和.contents方法不起作用的原因和解决方法。

问题出现的原因是:使用.find()方法时,即使目标元素不存在,它也会返回一个jQuery包装的空对象,被视为一个true值。因此,使用.find('.ads')将始终返回true,无论目标元素是否存在。

解决方法是:使用.length属性来检查元素是否存在,如果长度大于0则表示元素存在。

为了检查元素是否存在,可以使用以下代码:

if ($('#me').find('.ads').length) {
   ...
}

.find()方法允许我们在DOM树中搜索这些元素的后代,并从匹配的元素构建一个新的jQuery对象。它创建了一个jQuery包装的节点集合,在任何情况下都会被视为true。对于你的目的来说,重要的是检查这个集合是否为空。

如果想要了解更多关于jQuery包装的节点集合的信息,可以参考相关的文章或资料。

0
0 Comments

问题出现的原因是:当使用.find和.contents函数时,无法获取到预期的结果,即选择器的长度为0。解决方法是使用$(selector).length来获取选择器的长度。

在jQuery中,所有的选择器和遍历函数都返回一个jQuery对象。jQuery对象是一个类似数组的对象,具有属性和对核心函数的引用。

当调用jQuery函数$(selector)时,它会根据选择器创建一个jQuery对象,其中包含与选择器匹配的元素列表。

例如:当执行$('#test')时,它会创建一个jQuery对象,并将ID为test的DOM元素包装起来。

问题出现在jQuery的.init函数中,该函数用于处理ID选择器。在匹配到ID时,会将DOM元素包装成一个jQuery对象。

问题的关键是,无论选择器是否匹配到元素,$函数始终返回一个jQuery对象,以保护后续的链式调用不会出错。

大多数情况下,我们选择一个元素来执行一些操作,例如$('#test').addClass('example')。

具体步骤如下:

1. 使用字符串参数'#test'调用jQuery函数$('#test')。

2. jQuery调用.init函数来确定参数的类型,并根据匹配的元素(如果有的话)返回一个包含匹配元素的jQuery对象。

3. 在jQuery对象上调用.addClass函数,该函数会迭代匹配元素的列表,并将类添加到元素上。

需要注意的是:

1. $函数始终返回一个jQuery对象。

2. jQuery对象是一个JavaScript对象,具有以下内容:

a. 包装的匹配元素集合

b. 属性

c. 函数

以下是一个示例,使用.find函数获取匹配元素的包装集合:

var $lisample = $('ul').find('.red');

通过以上内容,我们了解到了.find和.contents函数无法正常工作的原因,以及如何解决这个问题。我们还了解了jQuery对象的特点和使用方法。

参考链接:

- [How do jQuery objects imitate arrays?](https://stackoverflow.com/questions/1483445)

- [jQuery object and DOM element](https://stackoverflow.com/questions/6974582)

- [Does calling the jQuery function return an object?](http://blog.buymeasoda.com/does-calling-the-jquery-function-return-an-ob)

0