jQuery каждая функция не работает - PullRequest
0 голосов
/ 13 октября 2010

У меня есть 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 ]

8 голосов
/ 13 октября 2010
$('.PointsToggle').each(function() {
  var $this = $(this);
  if ($this.text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
    $this.width(510);
  } else {
    $this.width(20);
  }
})​
3 голосов
/ 13 октября 2010

Вы используете =, что означает присваивать.Попробуйте == вместо этого.

2 голосов
/ 13 октября 2010

.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;
})​;
0 голосов
/ 13 октября 2010

Это будет работать:

$('.PointsToggle').each(function() {
if ($(this).text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
    $(this).css('width', '510px');
}
else {
    $(this).css('width', '20px');
}
})​
0 голосов
/ 13 октября 2010
$(document).ready() {
    $('.PointsToggle').each(function() {
        if($(this).html() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
            $(this).width(510);
        } else {
            $(this).width(20);
        }
    })​
});

EDIT:

Если это возможно, я бы использовал код, генерирующий HTML, добавив еще один класс. Тогда все это можно сделать с помощью CSS. Например:

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

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