迭代每个兄弟元素

时间:2013-08-10 14:05:29

标签: javascript jquery class selector

上下文 我正在构建一个表单和脚本,它将基于单击特定按钮执行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);
        });
    });
});

2 个答案:

答案 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);
        });
    });
}); 

http://api.jquery.com/siblings/