每个循环的Jquery div获取一行中的所有值

时间:2014-04-10 09:35:51

标签: jquery

我希望jquery遍历一些给定的div块,检查其中一个是否存在特定文本,如果返回true则执行某些操作。

这是我的HTML结构:

<div class="months">
<div class="month-button">Jan</div>
<div class="month-button">Feb</div>
<div class="month-button">Mar</div>
<div class="month-button">Apr</div>
<div class="month-button">May</div>
<div class="month-button">Jun</div>
<div class="month-button">Jul</div>
<div class="month-button">Aug</div>
<div class="month-button">Sep</div>
<div class="month-button">Oct</div>
<div class="month-button">Nov</div>
<div class="month-button">Dec</div>
</div>

这是我的JS:

$('div.month-button').on('click', function(){
$('div.months div.month-button').each(function(){

    alert($('div.months div.month-button').text());

            if($('div.months div.month-button').text() == 'Apr')
            {
                alert($('div.months div.month-button').text());
            }

        });
    });

问题是,上面的代码只会返回一行,其中包含来自所有div块的文本。你可以在这里看到这个:http://jsfiddle.net/hmey6/ 什么是强制代码在循环时从一个div返回一个值的方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要将.click()处理程序放在.each()内,并使用$(this)来定位当前的循环元素:

$('div.months div.month-button').each(function () {
    $(this).on('click', function () {
        alert($(this).text());
        if ($(this).text() == 'Apr') {
            alert($(this).text());
        }
    });
});

<强> Updated Fiddle

如果您不需要处理.each()内的任何其他任务,您可以直接使用:

$('div.months div.month-button').on('click', function () {
    alert($(this).text());
    if ($(this).text() == 'Apr') {
        alert($(this).text());
    }
});

<强> Updated Fiddle