Jquery使用after引用查询每个循环
我想从.class元素到class元素画一条画布线。到目前为止,我可以通过elements.first()和elements.first()引用类中的开始和结束元素 困难在于我想要使用想要起点和终点的二次曲线。端点是.class中的下一个元素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
$('.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元素,实际上是相同的东西。(编辑:啊,好的,我明白你的意思。)