上下文 我正在构建一个表单和脚本,它将基于单击特定按钮执行ajax查询。有多个div块具有相同类的元素,并且基于div块,单击一个按钮,将处理不同的表单。
作为开始该程序的一部分,我开始使用一个看似简单的jQuery调用。
我试图将onclick事件添加到特定类,然后尝试获取该元素的兄弟姐妹的CSS值。
错误:
我收到的错误是TypeError: this.siblings is undefined
。
问题:使用jQuery迭代元素兄弟的正确方法是什么?
我的代码:
HTML:
<a class="btn LiveStatsBtn"><span class="btn-label">Get Stats now</span> </a>
JavaScript的:
$(document).ready (function()
{
$('.LiveStatsBtn').click(function(){
this.siblings.each( function () {
var tx=this.css();
alert(tx);
});
});
});
答案 0 :(得分:19)
在jQuery事件处理程序中,this
引用DOM元素,而不是jQuery对象。你必须把它包装成一个:
$(this).siblings().each(function() {
// ...
});
另请注意,“兄弟姐妹”是一个函数,因此您必须调用它来获取一个包装元素兄弟的新jQuery对象。
答案 1 :(得分:1)
siblings
是一个函数,所以它需要括号:
$(document).ready (function()
{
$('.LiveStatsBtn').click(function(){
$(this).siblings().each( function () {
var tx=$(this).css();
alert(tx);
});
});
});