jQuery每个函数都不起作用

时间:2010-10-13 10:54:44

标签: jquery function each

我有一些p标签,其中包含PointsToggle

<p class="PointsToggle">POINTS STATEMENT - AVAILABLE 7AM TOMORROW</p>
<p class="PointsToggle">SOME OTHER TEXT</p>

还有一些像这样的jQuery

$('.PointsToggle').each(function() {
if ($(this).text = 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
    $(this).css('width', '510px');
}
else {
    $(this).css('width', '20px');
}
})​

但我似乎无法让它发挥作用

有什么想法吗?

由于

杰米

5 个答案:

答案 0 :(得分:8)

$('.PointsToggle').each(function() {
  var $this = $(this);
  if ($this.text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
    $this.width(510);
  } else {
    $this.width(20);
  }
})​

答案 1 :(得分:3)

您正在使用=表示分配。尝试==代替。

答案 2 :(得分:2)

.text()是一个函数,因此在调用它时会遗漏一些括号,如下所示:

if ($(this).text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {

或者在jQuery 1.4 +中总体上更简单一点:

$('.PointsToggle').width(function() {
 return $(this).text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW' ? 510 : 20;
})​;

答案 3 :(得分:0)

$(document).ready() {
    $('.PointsToggle').each(function() {
        if($(this).html() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
            $(this).width(510);
        } else {
            $(this).width(20);
        }
    })​
});

编辑:

如果有可能我会让生成html的代码添加另一个类。然后这可以用css完成。例如:

<p class="PointsToggle Toggled">POINTS STATEMENT - AVAILABLE 7AM TOMORROW</p>

<style>
    .PointsToggle {width:20px;}
    .PointsToggle.Toggled {width:510px;}
</style>

答案 4 :(得分:0)

这将有效:

$('.PointsToggle').each(function() {
if ($(this).text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
    $(this).css('width', '510px');
}
else {
    $(this).css('width', '20px');
}
})​