Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery使用after引用查询每个循环_Jquery_Canvas_Each_Next - Fatal编程技术网

Jquery使用after引用查询每个循环

Jquery使用after引用查询每个循环,jquery,canvas,each,next,Jquery,Canvas,Each,Next,我想从.class元素到class元素画一条画布线。到目前为止,我可以通过elements.first()和elements.first()引用类中的开始和结束元素 困难在于我想要使用想要起点和终点的二次曲线。端点是.class中的下一个元素 $('.myclass').chainlines(); $.fn.chainlines = function(){ context.moveTo($(this).first().position().left+15,$(this).first().posi

我想从.class元素到class元素画一条画布线。到目前为止,我可以通过elements.first()和elements.first()引用类中的开始和结束元素

困难在于我想要使用想要起点和终点的二次曲线。端点是.class中的下一个元素

$('.myclass').chainlines();
$.fn.chainlines = function(){
context.moveTo($(this).first().position().left+15,$(this).first().position().top+20);
$(this).each(function(){
next = $(this).next();
context.quadraticCurveTo($(this).first().position().left+60,
$(this).position().top+25,$(next).position().left+15,$(next).position().top+15);
});
};
我有一个JSFIDLE示例,需要将其扩展为链式。看


这对我不起作用。

小提琴似乎与你的问题无关

我想你在找这样的东西

 divs.each(function(idx){
    alert(divs[idx].next().attr("id"));
 })

也许这就是你想要的:

divs.each(function(){
   alert($(this).next().get(0).id);
})

我解决了自己的问题

$.fn.chainlines = function(){
    var divs = $(this);
    var count = $(this).length;
    for (var i = 0; i < count; i++) {
        if((i + 1) < count){
            context.moveTo($(divs[i]).position().left+15,$(divs[i]).position().top+20);
            context.quadraticCurveTo($(divs[i]).position().left+60,
                                 $(divs[i]).position().top+35,
                                 $(divs[i+1]).position().left+15,
                                 $(divs[i+1]).position().top+1);      
            context.stroke();
        }
    }
};
$.fn.chainlines=函数(){
var divs=$(本);
变量计数=$(此).length;
对于(变量i=0;i
我看不出链接的小提琴与此代码段有什么关系。另外,该代码段不是有效的jQuery。是什么让您认为jQuery中有一个实际的
.id()
方法,您是否尝试过
.prop('id')
@adeneo该id不是属性,而是属性。@adeneo我对Juhana很熟悉,顺便说一句,“id”应该始终保留默认值,因此没有理由在这里使用.prop()。但对于“id”,这是一个错误的争论,因为我们应该使用DOM元素的属性instead@roasted,所以您建议在
element.id
上使用
element.getAttribute('id')
?因为这就是
$(..).attr('id')
$(..).prop('id')
之间的区别。
prop
attr
都应该可以正常工作,但为了保持一致性,我还是坚持使用
prop
。为什么不使用'this'而不是divs[idx]?@虽然在这种情况下它可能不明显。@Juhana您建议通过索引进行访问比使用引用对象'this'更快,这很有趣,我会对它进行测试,看看发生了什么。@我假设这是因为每次都需要创建一个新的jQuery对象(
$(this)
),而不是重复使用现有的对象。@KevinB它是一个不同的jQuery对象,但具有相同的DOM元素,实际上是相同的东西。(编辑:啊,好的,我明白你的意思。)