其他分享
首页 > 其他分享> > jQuery-选择具有类名和节点索引的元素

jQuery-选择具有类名和节点索引的元素

作者:互联网

我有一类“ .myclass”元素.现在,我想通过其节点索引选择这些元素之一并对其进行动画处理.我收到一个错误消息,说该元素没有函数动画.

例:

<div class="myclass"></div>
<div class="myclass"></div>
<div class="myclass"></div>

var indizes = [0, 3];

$.each(indizes, function(i, v) {
    $('.myclass')[v].animate({
        left: 100
    }, 1000);
});

显然,该错误是由使用错误的选择器引起的.如果我使用它确实可以工作

$($('.myclass')[v])

代替

$('.myclass')[v]

这是实际问题吗?嵌套选择器对我来说似乎很奇怪.

解决方法:

Is this the actual problem?

是.如果通过括号表示法访问选定的元素,则会返回原始DOM元素. DOM元素没有动画方法.通过将DOM元素再次传递给jQuery($($(‘.myclass’)[v])),您正在创建jQuery对象(再次).

您可以避免这种情况,并使用.eq为该索引处的元素获取jQuery对象:

$('.myclass').eq(v);

最好在循环外保留对选定元素的引用:

var indizes = [0, 3];
var $elements = $('.myclass');

$.each(indizes, function(i, v) {
    $elements.eq(v).animate({
        left: 100
    }, 1000);
});

或者,您可以使用.filter过滤出要设置动画的元素,这至少看起来更简洁一些:

$('.myclass').filter(function(i) {
    return $.inArray(i, indizes) > -1;
}).animate({
    left: 100
}, 1000);

标签:jquery-selectors,javascript,jquery
来源: https://codeday.me/bug/20191030/1968977.html