代码之家  ›  专栏  ›  技术社区  ›  Jamie Taylor

jquery每个函数都不工作

  •  0
  • Jamie Taylor  · 技术社区  · 14 年前

    我有一些 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 回复  |  直到 14 年前
        1
  •  8
  •   Shay Erlichmen    14 年前
    $('.PointsToggle').each(function() {
      var $this = $(this);
      if ($this.text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
        $this.width(510);
      } else {
        $this.width(20);
      }
    })​
    
        2
  •  3
  •   Buh Buh    14 年前

    您使用的是=这意味着赋值。而不是尝试。

        3
  •  2
  •   Nick Craver    14 年前

    .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;
    })​;
    
        4
  •  0
  •   Roman    14 年前

    这将起作用:

    $('.PointsToggle').each(function() {
    if ($(this).text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') {
        $(this).css('width', '510px');
    }
    else {
        $(this).css('width', '20px');
    }
    })​
    
        5
  •  0
  •   demux    14 年前
    $(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>